Skip to content

Commit 247544a

Browse files
committed
use Xcode 3.2.6's ld to link i386 too
- fixes linking i386 that targets 10.5 on Xcode 8 #30 - may cause issues if someone links i386 that targets OSX > 10.6 (but who would do that?)
1 parent 4ded932 commit 247544a

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

XcodeLegacy.sh

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -480,7 +480,7 @@ EOF
480480
mkdir -p "$GCCDIR/tmp"
481481
(gzip -dc Xcode3ld.tar.gz | (cd "$GCCDIR/tmp"; tar xf -))
482482
cp "$GCCDIR/tmp/usr/bin/ld" "$GCCDIR/usr/libexec/gcc/darwin/ppc/"
483-
cp "$GCCDIR/tmp/usr/bin/ld" "$GCCDIR/usr/libexec/gcc/darwin/ppc64/"
483+
ln "$GCCDIR/usr/libexec/gcc/darwin/ppc/ld" "$GCCDIR/usr/libexec/gcc/darwin/ppc64/ld"
484484
rm -rf "$GCCDIR/tmp"
485485
mkdir -p "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/libexec/ld/ppc"
486486
mkdir -p "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/libexec/ld/ppc7400"
@@ -490,6 +490,14 @@ EOF
490490
ln -sf "$GCCDIR/usr/libexec/gcc/darwin/ppc/ld" "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/libexec/ld/ppc7400/ld"
491491
ln -sf "$GCCDIR/usr/libexec/gcc/darwin/ppc/ld" "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/libexec/ld/ppc970/ld"
492492
ln -sf "$GCCDIR/usr/libexec/gcc/darwin/ppc64/ld" "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/libexec/ld/ppc64/ld"
493+
# Xcode 8's ld fails to link i386 for OSX 10.5: https://github.com/devernay/xcodelegacy/issues/30
494+
# Since this ld is from Xcode 3.2.6 for OSX 10.6, this should be OK in most cases,
495+
# but it may pose a problem if linking i386 with MACOSX_DEPLOYMENT_TARGET or -mmacosx-version-min > 10.6
496+
# (but who would do such a thing?)
497+
mkdir -p "$GCCDIR/usr/libexec/gcc/darwin/i386"
498+
ln "$GCCDIR/usr/libexec/gcc/darwin/ppc/ld" "$GCCDIR/usr/libexec/gcc/darwin/i386/ld"
499+
mkdir -p "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/libexec/ld/i386"
500+
ln -sf "$GCCDIR/usr/libexec/gcc/darwin/i386/ld" "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/libexec/ld/i386/ld"
493501
# prevent overwriting the original ld if the script is run twice
494502
if [ ! -f "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld-original" ]; then
495503
mv "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld" "$GCCDIR/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld-original"
@@ -523,7 +531,7 @@ else
523531
exit 1
524532
fi
525533
LD_RESULT=255
526-
if [ "\$ARCH" = 'ppc' -o "\$ARCH" = 'ppc7400' -o "\$ARCH" = 'ppc970' -o "\$ARCH" = 'ppc64' ]; then
534+
if [ "\$ARCH" = 'ppc' -o "\$ARCH" = 'ppc7400' -o "\$ARCH" = 'ppc970' -o "\$ARCH" = 'ppc64' -o "\$ARCH" = 'i386' ]; then
527535
ARGS=()
528536
DEPINFO_FOUND=0
529537
for var in "\$@"; do

0 commit comments

Comments
 (0)