python / cpython

The Python programming language
https://www.python.org/
Other
59.68k stars 28.93k forks source link

Dynamic Loading Fails on Mac OS X #33232

Closed d0bd5d4f-9468-428f-bdd3-18136fa41d93 closed 23 years ago

d0bd5d4f-9468-428f-bdd3-18136fa41d93 commented 23 years ago
BPO 215641
Nosy @jackjansen

Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

Show more details

GitHub fields: ```python assignee = 'https://github.com/jackjansen' closed_at = created_at = labels = ['build'] title = 'Dynamic Loading Fails on Mac OS X' updated_at = user = 'https://bugs.python.org/jpettit' ``` bugs.python.org fields: ```python activity = actor = 'jackjansen' assignee = 'jackjansen' closed = True closed_date = None closer = None components = ['Build'] creation = creator = 'jpettit' dependencies = [] files = [] hgrepos = [] issue_num = 215641 keywords = [] message_count = 2.0 messages = ['1716', '1717'] nosy_count = 2.0 nosy_names = ['jackjansen', 'jpettit'] pr_nums = [] priority = 'normal' resolution = None stage = None status = 'closed' superseder = None type = None url = 'https://bugs.python.org/issue215641' versions = [] ```

d0bd5d4f-9468-428f-bdd3-18136fa41d93 commented 23 years ago

Martin v. Loewis asked me to report that dynamic loading fails on Mac OS X. I was able to successfully build the CVS version of Python following the directions posted by Dan Wolfe to Python-Dev:

http://www.python.org/pipermail/python-dev/2000-September/016289.html

However, I had some problems compiling the CVS version of Python/XML and reported them as a bug to Source Forge:

https://sourceforge.net/bugs/?func=detailbug&group_id=6473&bug_id=115544

Martin pointed out "how distutils comes up with the linker line: They read the configure-generated Makefile and scan for LDSHARED. So anything that was in the Python Makefile will be used when linking a distutils module." He aksed me to try to build Python a few different ways, but they all failed.

When configured with:

./configure -with-threads -with-dyld --with-next-framework -with-suffix=.exe

Building Python produced the following:

cd Modules ; make OPT="-g -O2 -fno-common" VERSION="2.0" \ prefix="/usr/local" execprefix="/usr/local" all make[2]: Nothing to be done for `all'. libtool -o libpython2.0.dylib -dynamic libpython2.0.a -framework System
ld: for architecture ppc ld: Undefined symbols: restFP saveFP _\
_eprintf _environ libtool: internal link edit command failed make[1]: [libpython2.0.dylib] Error 1 make: [python.exe] Error 2

When line 579 in "configure" is modified to the following:

then LDSHARED='$(CC) $(LDFLAGS) -bundle -undefined suppress'

building Python results in the following:

for i in Parser Grammar Objects Python Modules; do \ (cd $i; make VERSION="2.0" add2lib); done make[2]: add2lib' is up to date. make[2]: Nothing to be done foradd2lib'. make[2]: add2lib' is up to date. make[2]:add2lib' is up to date. make[2]: `add2lib' is up to date. libtool -o libpython2.0.dylib -dynamic libpython2.0.a -framework System
ld: for architecture ppc ld: Undefined symbols: ___eprintf _environ libtool: internal link edit command failed make[1]: [libpython2.0.dylib] Error 1 make: [python.exe] Error 2

I have only been using Mac OS X for a few days (and the development tools even less), so this could definitely be due to user error, but I will help out however I can.

jackjansen commented 23 years ago

Lots of work has been done (not by me:-) on MacOSX Python, and the problems in this bug report appear to have been addressed in 2.0 final.