View previous topic :: View next topic |
Author |
Message |
dobbs Tux's lil' helper
Joined: 20 Aug 2005 Posts: 105 Location: Wenatchee, WA
|
Posted: Wed Dec 28, 2011 3:02 am Post subject: Prefixing OS X.4 on a G3: libffi wrong cpusubtype |
|
|
So I'm installing Portage Prefix on an old G3 Powerbook running OS X Tiger, and everything's bootstrapping fine until it tries to emerge python as a portage dependency:
Code: | powerpc-apple-darwin8-gcc -bundle -undefined dynamic_lookup -Wl,-dead_strip_dylibs -L/opt/gentoo/lib -L/opt/gentoo/usr/lib -L. -Wl,-dead_strip_dylibs -L/opt/gentoo/lib -L/opt/gentoo/usr/lib -L. -fno-strict-aliasing -fno-common -dynamic -O3 -mcpu=G3 -mtune=G3 -fwrapv -I/opt/gentoo/usr/include -DNDEBUG -I. -IInclude -I./Include build/temp.macosx-10.4-ppc-2.7/opt/gentoo/var/tmp/portage/dev-lang/python-2.7.2-r3/work/Python-2.7.2/Modules/_ctypes/_ctypes.o build/temp.macosx-10.4-ppc-2.7/opt/gentoo/var/tmp/portage/dev-lang/python-2.7.2-r3/work/Python-2.7.2/Modules/_ctypes/callbacks.o build/temp.macosx-10.4-ppc-2.7/opt/gentoo/var/tmp/portage/dev-lang/python-2.7.2-r3/work/Python-2.7.2/Modules/_ctypes/callproc.o build/temp.macosx-10.4-ppc-2.7/opt/gentoo/var/tmp/portage/dev-lang/python-2.7.2-r3/work/Python-2.7.2/Modules/_ctypes/stgdict.o build/temp.macosx-10.4-ppc-2.7/opt/gentoo/var/tmp/portage/dev-lang/python-2.7.2-r3/work/Python-2.7.2/Modules/_ctypes/cfield.o build/temp.macosx-10.4-ppc-2.7/opt/gentoo/var/tmp/portage/dev-lang/python-2.7.2-r3/work/Python-2.7.2/Modules/_ctypes/malloc_closure.o build/temp.macosx-10.4-ppc-2.7/opt/gentoo/var/tmp/portage/dev-lang/python-2.7.2-r3/work/Python-2.7.2/Modules/_ctypes/darwin/dlfcn_simple.o -L/opt/gentoo/lib -L/opt/gentoo/usr/lib -L. -lffi -o build/lib.macosx-10.4-ppc-2.7/_ctypes.bundle
*** WARNING: renaming "_ctypes" since importing it failed: dlopen(build/lib.macosx-10.4-ppc-2.7/_ctypes.bundle, 2): Library not loaded: /opt/gentoo/usr/lib/libffi.5.dylib
Referenced from: build/lib.macosx-10.4-ppc-2.7/_ctypes.bundle
Reason: no suitable image found. Did find:
/opt/gentoo/usr/lib/libffi.5.dylib: incompatible cpu-subtype
Python build finished, but the necessary bits to build these modules were not found:
_bsddb bsddb185 dbm
gdbm linuxaudiodev ossaudiodev
spwd sunaudiodev
To find the necessary bits, look in setup.py in detect_modules() for the module's name.
Failed to build these modules:
_ctypes
|
It turns out libffi is getting the ppc7400 (G4) cpusubtype in the ELF header:
Code: | dobbs@wallstreet /opt/gentoo $ otool -vh usr/lib/libffi.5.dylib
usr/lib/libffi.5.dylib:
Mach header
magic cputype cpusubtype caps filetype ncmds sizeofcmds flags
MH_MAGIC PPC ppc7400 0x00 DYLIB 8 1088 NOUNDEFS DYLDLINK TWOLEVEL NO_REEXPORTED_DYLIBS
|
I did set CFLAGS="-mcpu=G3 -mtune=G3" and CXXFLAGS="${CFLAGS}" before re-emerging libffi, but that didn't help. All other libs get the proper cpusubtype.
The version of libffi installed by macports doesn't have this problem. Swapping the portage dylib with a symlink to the one from macports seems to work (they're both version 3.0.10); python builds fine with that. Trouble is, that'll get clobbered with any libffi rebuilds or updates.
I don't have a clue how to fix this properly... Should I file a bug or what? |
|
Back to top |
|
|
dobbs Tux's lil' helper
Joined: 20 Aug 2005 Posts: 105 Location: Wenatchee, WA
|
Posted: Thu Jan 12, 2012 9:20 pm Post subject: |
|
|
Further adventures with this machine:
binutils-apple
binutils-apple tries to update to binutils-apple-4.2 during the emerge -e system step of the bootstrap and completely fails. I bypassed it with an emerge --resume --skipfirst, choosing to continue using binutils-apple-3.2 and everything else built fine (as long as I continued using the macports libffi).
emerge -e system also updates gcc-apple to 4.2.1_p5666. I'm a little worried about this, because the bootstrap docs say I need binutils-apple-4.2 when using gcc-apple-4.2.1. I haven't noticed any problems though. Perhaps it's only needed when using the X-Code version of gcc 4.2.1?
cutecom
This is my first major issue with the prefix. Cutecom was my primary stimulus for installing Portage Prefix. It also apparently natively supports Mac OS X, and tries to install an app bundle in /Applications, outside the prefix root:
Code: | >>> Source compiled.
>>> Test phase [not enabled]: net-dialup/cutecom-0.22.0
>>> Install cutecom-0.22.0 into /opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/ category net-dialup
>>> Working in BUILD_DIR: "/opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/work/cutecom-0.22.0_build"
make DESTDIR=/opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/ install
[100%] Built target cutecom
Install the project...
-- Install configuration: "Gentoo"
-- Installing: /opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/Applications/CuteCom.app
-- Installing: /opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/Applications/CuteCom.app/Contents
-- Installing: /opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/Applications/CuteCom.app/Contents/Info.plist
-- Installing: /opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/Applications/CuteCom.app/Contents/MacOS
-- Installing: /opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/Applications/CuteCom.app/Contents/MacOS/CuteCom
-- Installing: /opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/opt/gentoo/usr/share/man/man1/cutecom.1
>>> Completed installing cutecom-0.22.0 into /opt/gentoo/var/tmp/portage/net-dialup/cutecom-0.22.0/image/
ecompressdir: bzip2 -9 /usr/share/man
* QA Notice: the following files are outside of the prefix:
* /Applications
* /Applications/CuteCom.app
* /Applications/CuteCom.app/Contents
* /Applications/CuteCom.app/Contents/Info.plist
* /Applications/CuteCom.app/Contents/MacOS
* /Applications/CuteCom.app/Contents/MacOS/CuteCom
* ERROR: net-dialup/cutecom-0.22.0 failed:
* Aborting due to QA concerns: there are files installed outside the prefix
*
* Call stack:
* misc-functions.sh, line 1855: Called install_qa_check
* misc-functions.sh, line 253: Called install_qa_check_prefix
* misc-functions.sh, line 889: Called die
* The specific snippet of code:
* die "Aborting due to QA concerns: there are files installed outside the prefix" |
I'm guessing this a bug in the ebuild; it doesn't seem like Prefix wants ebuilds installing apps like that. However, now I realize I can try building cutecom from source without the aid of a package manager... |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|