Changeset - 958dc080184f
[Not reviewed]
default
0 2 1
Nathan Brink (binki) - 14 years ago 2010-12-28 10:14:16
ohnobinki@ohnopublishing.net
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)
3 files changed with 105 insertions and 15 deletions:
0 comments (0 inline, 0 general)
sys-apps/busybox/Manifest
Show inline comments
 
@@ -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-----
sys-apps/busybox/busybox-1.18.1.ebuild
Show inline comments
 
@@ -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 \
sys-apps/busybox/files/busybox-1.18.1-ldflags.patch
Show inline comments
 
new file 100644
 
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
0 comments (0 inline, 0 general)