# HG changeset patch # User Nathan Phillip Brink # Date 2010-12-28 10:14:16 # Node ID 958dc080184f8ca048d10746e266e186c40bcb19 # Parent 0fd306d51f357a950a58c9a076eefec48fd10e69 sys-apps/busybox: Add LDFLAGS/LD patch so that busybox links using gcc instead of ld and compiles fine under portage-multilib. (Portage version: 2.2.0_alpha2-r1/hg/Linux x86_64, signed Manifest commit with key 6BA81050) diff --git a/sys-apps/busybox/Manifest b/sys-apps/busybox/Manifest --- a/sys-apps/busybox/Manifest +++ b/sys-apps/busybox/Manifest @@ -2,6 +2,7 @@ Hash: SHA256 AUX busybox-1.18.0-bb.patch 918 RMD160 e6a7be911deb07510ddf46b8a4b8b24ef5b1b29a SHA1 f4815f4cd948c300d65e553486c949c780f05752 SHA256 9e713de11f26a07e5a17d7e62eed7a10b163de91331d50541dcc2c037acbcb67 +AUX busybox-1.18.1-ldflags.patch 3584 RMD160 81fad3e0be89638ecfddb6f655c6a3413821e150 SHA1 7e216d05b9adb0965de333a6e60a12bb319bc8df SHA256 72b6f002fdc99f329ffa5f9c17f02ec350ed700c768f2f61f9ba88e6c83445ae AUX mdev-start.sh 2758 RMD160 c177aac4940b177bd857bc98ff2ac031e0489bbc SHA1 5a5b95da36c489cd12820513434a7a17ac3bffd1 SHA256 9904263c8dfe2b8c3e968a9b4245fa0c162a2413110c037cdd797ac3773587d7 AUX mdev.rc 282 RMD160 6a11e23fbed92acd24088a7885bdc52b9c845fac SHA1 46f1a0494e009332e83b62599842f8213b60ba60 SHA256 e52abbc3399fc85ce1f097e8f12b25a5ca7fe2e3d648bee60c061b547ba39dc5 AUX mdev/dvbdev 356 RMD160 db7f546ae6e47b59cca9712f1e218cdbc3985c78 SHA1 993c0ab79fa41912f84db95e7dd09aa0965aa8c7 SHA256 ef091bb4c8943a99b9a97b556cdc15ddd20275f5afa8287e201419b08c4e71de @@ -9,22 +10,22 @@ AUX mdev/ide_links 440 RMD160 5d133f27d1 AUX mdev/usbdev 1624 RMD160 a448558f058566223072c993cb4ae52f9aa43da3 SHA1 4d1a7a19e58549416dd3bde4fcf2f584adc4feb7 SHA256 113ecaa722fa1f4e1c76489e2a7b24099778615a5bccd443aa9cbab28c6d05d0 AUX mdev/usbdisk_link 984 RMD160 9b86d85f5f27f03f894a062c9f00d3583c4db3ae SHA1 690290b25fa1b90f6d9d7b8947a55746920991a4 SHA256 4957f6991e0cb988b263b5276b582f1757deecad19cddebe3c615b381df9f858 DIST busybox-1.18.1.tar.bz2 2129404 RMD160 fb40d19103945eb1cd785a6041e5545f4055b8f6 SHA1 83b86858599870e46236da8d370d335d48cee77e SHA256 33eb25ea7b20c727c3af769256b21408a1ac1f927ff9f89a1f1e3767c18c9967 -EBUILD busybox-1.18.1.ebuild 7879 RMD160 37a61f1aad0924dd093cd17aade4c8231ec0a674 SHA1 6385245b1e0476e1c45ebb24cb31bb43bbc8d58a SHA256 7eecfc226d3f2ae6d10a7b40be69c08daaef57132db2401f028d107ca2fd7ecb +EBUILD busybox-1.18.1.ebuild 7875 RMD160 cc31b38e803d6d1bedfbd4c820baeea9e8836c5b SHA1 de666aea7b1dad38d34c5f92b3963cb10a6a2dd4 SHA256 61097fee3b625b1efa1f4c3be69d3852cd774b226043879193be67a5a1fb653b MISC metadata.xml 368 RMD160 2facee7f44b7469c85383961c2dd4338ea6fffcb SHA1 eae78f6b5eb3a21aeae692f9a7420ab536be3739 SHA256 033b1cb2abe759f73b184ce43b5c791454716638090767c2bc70cc52b4ef187f -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.14 (GNU/Linux) -iQIcBAEBCAAGBQJNGfxnAAoJEHQ6UuhrqBBQcH8P/iTluW4iPVDQNw9QHN7IJM+L -9hNKzVRiS3TN2Jxol0A4YSlJV5wyAvFTDRPFfwYa+TGZnvxCEJFbQJks5aLVdN5m -Znt0M6mg/EeyP8c54G99YMKgNIRZFUYsxzGT7Gp+zu5CdXMND4qeBc5CEVE18SsU -GGM96pI1g4mRNcSgDXVAdziHbiY0VjndGL8GLJW8QW4htI3ggm+X2uwMR+q5DMjz -7DeCUZabDJi5E19auMps3abGgV2FyNhV23wJp0ZtCohP8h8ic3fQjGGH3D31d+se -FVpuwXVmWZMdpoXVAy2PynwyvsO8mRXLW6RQdEVvfgG142er09GaV98ebg6VxVJv -ivPP30A0wG9/opCKQReR+4DSRMYarUP6lTzycc457+RYj/PgYEiMP0lFwVXxbEIU -3LVsf07XOW8ljVBJDgHMDX09rwdz8P4g2+CbED8ZEnjaJEvB7NzkuZ98Wpy4y6XK -lAw2nrpPUGZ4JYyBB7TtZ47x8k5uZitCTaFlqKm1IUroMdTPpcgoAU5hoMfOzYFj -4RVvhq1wYMepEtkQBqsOAkq3yxC1d+UmZgaL4Qn12yjc2ACKKbwmfUWq3VQSSaty -7aJJw6S2vT9aUuG6R/H8pBxLT3UnRY2aKUsI1z8vbsnXP6JUWrOglezG/W+KK4GK -cpnEQ6aNLn2BW9ZIjxd1 -=0E2D +iQIcBAEBCAAGBQJNGf7HAAoJEHQ6UuhrqBBQonoP/3x2Sj9PNZJ+T/RzJrEqls8/ +IDmZbGrN99hXJ1yfbahvg+tdRy24KFZCgmiP5uaeUdTGpdMaU60gkEM2g6NvREh0 +Cea+t/2XPN8iKIK22BNXHblQfPS2SFk1gd+wXXYk2F7qOR11E1UuWt5QIXsEo08N +hLJT8EdX8wlXR7B2bx+/1ZzKC6/CNmDk3KyU22ZT8eiUnjfNBqc/Frq6c9KkCqp7 +C+Ek6mqYe4sN0mwzglqQhyNIr+8HL87GfwG1VjOffYOlawsmKqMvH4ZtYDLiYHs0 +hZ1n1hn2a2x1plVRa9XrhiXs3/ZPG6f0AraAH4PkeyZ+abDO4OgcK1fkFbD6QxlK +5huGs4R8a9JCSTI1mHOrxHYXk2mkPCoK0iOOrgikMl3rDGkrZ1EnGXtcT1KVCHrW +71HIc5GMLSli+Y8L5tbjGOTyb6dbkGaW4lN3/ptyqKZW+zjTDo+MtODxQFKAxDDe +rZIOwDRvxfYPIVQJotjDRW2RBeLmUrApLZv5GJBWVjdjHrNt6jh4BQQp/YGi8uzN +lXojSE945eFzgY8G2koG8qBqFVUWTnIcc9uRs3D2VeWMp6xlD58dAoGDV3EI5XhF +s+htlOGKG3tVxzDN2knzbYTVLBFHjY3VRuNKgb14jd/l88l/Mj+GZS3mUJdfsTTk +Uk8zFHG0K2p47JLD0H1E +=nbVp -----END PGP SIGNATURE----- diff --git a/sys-apps/busybox/busybox-1.18.1.ebuild b/sys-apps/busybox/busybox-1.18.1.ebuild --- a/sys-apps/busybox/busybox-1.18.1.ebuild +++ b/sys-apps/busybox/busybox-1.18.1.ebuild @@ -85,7 +85,7 @@ src_prepare() { # patches go here! epatch "${FILESDIR}"/busybox-1.18.0-bb.patch - #epatch "${FILESDIR}"/busybox-${PV}-*.patch + epatch "${FILESDIR}"/${P}-ldflags.patch # flag cleanup sed -i -r \ diff --git a/sys-apps/busybox/files/busybox-1.18.1-ldflags.patch b/sys-apps/busybox/files/busybox-1.18.1-ldflags.patch new file mode 100644 --- /dev/null +++ b/sys-apps/busybox/files/busybox-1.18.1-ldflags.patch @@ -0,0 +1,89 @@ +diff --git a/Makefile b/Makefile +index d9204f4..e9b4700 100644 +--- a/Makefile ++++ b/Makefile +@@ -308,7 +308,8 @@ CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ -Wbitwise $(C + MODFLAGS = -DMODULE + CFLAGS_MODULE = $(MODFLAGS) + AFLAGS_MODULE = $(MODFLAGS) +-LDFLAGS_MODULE = -r ++LDFLAGS_r = -r -nostdlib ++LDFLAGS_MODULE = $(LDFLAGS_r) + CFLAGS_KERNEL = + AFLAGS_KERNEL = + +@@ -330,7 +331,7 @@ KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) + export VERSION PATCHLEVEL SUBLEVEL KERNELRELEASE KERNELVERSION \ + ARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \ + CPP AR NM STRIP OBJCOPY OBJDUMP MAKE AWK GENKSYMS PERL UTS_MACHINE \ +- HOSTCXX HOSTCXXFLAGS LDFLAGS_MODULE CHECK CHECKFLAGS ++ HOSTCXX HOSTCXXFLAGS LDFLAGS_r LDFLAGS_MODULE CHECK CHECKFLAGS + + export CPPFLAGS NOSTDINC_FLAGS LINUXINCLUDE OBJCOPYFLAGS LDFLAGS + export CFLAGS CFLAGS_KERNEL CFLAGS_MODULE +diff --git a/scripts/Makefile.build b/scripts/Makefile.build +index 5685b5b..a3926ab 100644 +--- a/scripts/Makefile.build ++++ b/scripts/Makefile.build +@@ -174,7 +174,7 @@ cmd_modversions = \ + | $(GENKSYMS) -a $(ARCH) \ + > $(@D)/.tmp_$(@F:.o=.ver); \ + \ +- $(LD) $(LDFLAGS) -r -o $@ $(@D)/.tmp_$(@F) \ ++ $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_r) -o $@ $(@D)/.tmp_$(@F) \ + -T $(@D)/.tmp_$(@F:.o=.ver); \ + rm -f $(@D)/.tmp_$(@F) $(@D)/.tmp_$(@F:.o=.ver); \ + else \ +@@ -256,7 +256,7 @@ ifdef builtin-target + quiet_cmd_link_o_target = LD $@ + # If the list of objects to link is empty, just create an empty built-in.o + cmd_link_o_target = $(if $(strip $(obj-y)),\ +- $(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^),\ ++ $(CC) $(CFLAGS) $(LDFLAGS) $(LDFLAGS_r) -o $@ $(filter $(obj-y), $^),\ + rm -f $@; $(AR) rcs $@) + + $(builtin-target): $(obj-y) FORCE +@@ -291,10 +291,10 @@ $($(subst $(obj)/,,$(@:.o=-objs))) \ + $($(subst $(obj)/,,$(@:.o=-y)))), $^) + + quiet_cmd_link_multi-y = LD $@ +-cmd_link_multi-y = $(LD) $(ld_flags) -r -o $@ $(link_multi_deps) ++cmd_link_multi-y = $(CC) $(LDFLAGS) $(LDFLAGS_r) -o $@ $(link_multi_deps) + + quiet_cmd_link_multi-m = LD [M] $@ +-cmd_link_multi-m = $(LD) $(ld_flags) $(LDFLAGS_MODULE) -o $@ $(link_multi_deps) ++cmd_link_multi-m = $(CC) $(ld_flags) $(LDFLAGS_MODULE) -o $@ $(link_multi_deps) + + # We would rather have a list of rules like + # foo.o: $(foo-objs) +diff --git a/scripts/Makefile.lib b/scripts/Makefile.lib +index 3e54ea7..fbdf2a6 100644 +--- a/scripts/Makefile.lib ++++ b/scripts/Makefile.lib +@@ -117,12 +117,7 @@ a_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(CPPFLAGS) \ + + cpp_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(__cpp_flags) + +-# Seems to be a wrong thing to do. LDFLAGS contains gcc's flags, +-# yet ld_flags is fed to ld. +-#ld_flags = $(LDFLAGS) $(EXTRA_LDFLAGS) +-# Remove the -Wl, prefix from linker options normally passed through gcc +-ld_flags = $(filter-out -Wl$(comma)%,$(LDFLAGS) $(EXTRA_LDFLAGS)) +- ++ld_flags = $(LDFLAGS) $(EXTRA_LDFLAGS) + + # Finds the multi-part object the current object will be linked into + modname-multi = $(sort $(foreach m,$(multi-used),\ +@@ -151,10 +146,8 @@ $(obj)/%:: $(src)/%_shipped + # Linking + # --------------------------------------------------------------------------- + +-# TODO: LDFLAGS usually is supposed to contain gcc's flags, not ld's. +-# but here we feed them to ld! +-quiet_cmd_ld = LD $@ +-cmd_ld = $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LDFLAGS_$(@F)) \ ++quiet_cmd_ld = CCLD $@ ++cmd_ld = $(CC) $(ld_flags) $(LDFLAGS_$(@F)) \ + $(filter-out FORCE,$^) -o $@ + + # Objcopy