Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#18618 closed defect (invalid)

Python-2.6.1 +universal Installation Error - symbol not found during staging

Reported by: griff.rees@… Owned by: blb@…
Priority: Normal Milestone:
Component: ports Version: 1.7.0
Keywords: python26 64bit Cc: MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)
Port: python26

Description

Hi, I'm trying to build +universal to make use of my intel quad core. I'm on Leopard 10.5.6

staging python26 into destroot
Error: Target org.macports.destroot returned: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/Python-2.6.1" && make frameworkinstall maninstall MAKE="make CC=/usr/bin/gcc-4.0" DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot " returned error 2
Command output: cd PythonLauncher && make install DESTDIR=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot
test -d "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot/Applications/MacPorts/Python 2.6" || mkdir -p "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot/Applications/MacPorts/Python 2.6"
test -d "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot/Applications/MacPorts/Python 2.6/Python Launcher.app" && rm -r "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot/Applications/MacPorts/Python 2.6/Python Launcher.app"
cp -r "Python Launcher.app" "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot/Applications/MacPorts/Python 2.6"
touch "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot/Applications/MacPorts/Python 2.6/Python Launcher.app"
cd IDLE && make install
rm -fr IDLE.app
DYLD_FRAMEWORK_PATH=/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/Python-2.6.1: arch -ppc -i386 ../../python.exe ./../../Lib/plat-mac/bundlebuilder.py \
                --builddir=. \
                --name=IDLE \
                --link-exec \
                --plist=Info.plist \
                --mainprogram=./idlemain.py \
                --iconfile=./../Icons/IDLE.icns \
                --resource=./../Icons/PythonSource.icns \
                --resource=./../Icons/PythonCompiled.icns \
                --python=/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python`test -f "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/destroot/opt/local/Library/Frameworks/Python.framework/Versions/2.6/Resources/Python.app/Contents/MacOS/Python-32" && echo "-32"`  \
                build
Traceback (most recent call last):
  File "./../../Lib/plat-mac/bundlebuilder.py", line 40, in <module>
    from plistlib import Plist
  File "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/Python-2.6.1/Lib/plistlib.py", line 61, in <module>
    import binascii
ImportError: dlopen(/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/Python-2.6.1/build/lib.macosx-10.5-fat-2.6/binascii.so, 2): Symbol not found: _crc32
  Referenced from: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_python26/work/Python-2.6.1/build/lib.macosx-10.5-fat-2.6/binascii.so
  Expected in: dynamic lookup

make[2]: *** [IDLE.app] Error 1
make[1]: *** [install_IDLE] Error 2
make: *** [frameworkinstallapps] Error 2

Error: Status 1 encountered

Change History (10)

comment:1 Changed 16 years ago by mf2k (Frank Schima)

Cc: mcalhoun@… added
Owner: changed from macports-tickets@… to blb@…
Port: +universal removed

comment:2 Changed 16 years ago by blb@…

crc32 comes from zlib, so is your zlib port also installed +universal?

Also,

I'm trying to build +universal to make use of my intel quad core

+universal means to build for PowerPC and Intel so building without +universal should only build for your Intel CPU.

If it's 64bit-ness you're looking for, that's ticket #16349.

comment:3 Changed 16 years ago by griff.rees@…

mmm. Will check. I'm trying to build for 64bit-ness as per #16349, which claims that it's "fixed" for python2.6. Since there's no 64bit variant and it's supposedly "fixed" I guessed the universal build was what I wanted (and that os x would choose the "right" one for my proc).

Am I right in now guessing that to benefit from the changes to #16349 I will need to run macports svn, or manually alter the portfile?

Thanks,

-griff

comment:4 in reply to:  3 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Replying to griff.rees@…:

Am I right in now guessing that to benefit from the changes to #16349 I will need to run macports svn, or manually alter the portfile?

No, that should not be necessary.

There is a configuration file called macports.conf which allows you to specify what is meant by "universal."
To include 64-bit intel binaries in the universal build, then you should append x86_64 to the universal_archs variable.
The default is i386 ppc.

Each library pythnon links to (look at the dependencies) must also be built as universal with the same universal_archs value.
Unfortunately, there is no way at this time for MacPorts to check this for you.
That is why comment 2 suggested that perhaps zlib had not been build as a universal.

comment:5 Changed 16 years ago by griff.rees@…

Cool. Thanks very much. Would there be any downside to me switching my universal build to _just_ 64_bit, and then rebuilding my whole system that way (thus just using the universal variant as a proxy for 64_bit)?

It matters most for python though... I will look into rebuilding zlib etc.

Thanks very much for your help

comment:6 in reply to:  5 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Replying to griff.rees@…:

Cool. Thanks very much. Would there be any downside to me switching my universal build to _just_ 64_bit, and then rebuilding my whole system that way (thus just using the universal variant as a proxy for 64_bit)?

Unfortunately, the answer depends on which ports your want to install.
Some support universal builds and some do not.

There is the additional wrinkle that special code gets invoked when there is just one architecture in the universal build.
I am not sure what the motivation for it was, but it has caused problems at least once before.
For this reason, I would suggest that perhaps i386/x86_64 universal is a safer bet.

Setting +universal in variants.conf might make it easier to build everything as a universal.

comment:7 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Have the previous suggestions solved this problem?

comment:8 Changed 16 years ago by griff.rees@…

Sorry yes, recompiling most of the dependencies did fix the problem. Sorry didn't get back to you sooner. Thanks very much for the help.

comment:9 in reply to:  8 Changed 16 years ago by MarcusCalhoun-Lopez (Marcus Calhoun-Lopez)

Resolution: invalid
Status: newclosed

Replying to griff.rees@…:

Sorry yes, recompiling most of the dependencies did fix the problem. Sorry didn't get back to you sooner. Thanks very much for the help.

Glad to hear it worked.

comment:10 Changed 16 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.