packaging: create a wrapper for collect2 in gcc-force-options 55/139255/6
authorSangmin Seo <sangmin7.seo@samsung.com>
Tue, 18 Jul 2017 05:01:23 +0000 (14:01 +0900)
committerSangmin Seo <sangmin7.seo@samsung.com>
Fri, 28 Jul 2017 00:26:10 +0000 (09:26 +0900)
commitc51983b611f888ce51c6c137b50038a0daee45e9
tree58ebea1216849092ec396e5d95d44900d22c6472
parent84bd4b431e26d7a03cb4318423fed860a9a9dfe2
packaging: create a wrapper for collect2 in gcc-force-options

gcc-force-options used to prepend/append all force options to the
gcc/g++ wrappers.  This approach worked well for most packages but
caused some configure scripts to behave differently when linker flags
are included in the force options.  For example, if g++ is called with
-ldl appended, it always goes to the linking phase.  As a result, when
configure has expanded AC_PROG_CXXCPP macro, variables related to
preprocessor are not properly set and actual build ends up using
incorrect compile and link flags.

Since prepending or appending linker flags to the linker makes more
sense than carrying them from the compilation phase, this patch
basically divides the force options into compiler flags and linker
ones, and inserts them to corresponding wrappers.  Consequently, a
wrapper for collect2 is created, as we did for gcc and g++, in order
to pass the linker flags to the linker.  Note that collect2 bridges
the compiler and the actual linker, and thus creating a wrapper for
collect2 is more portable and succinct than doing so for linkers.

Change-Id: I8733bf14c5a2c04bfebe38a339c94e7a738cf17c
Signed-off-by: Sangmin Seo <sangmin7.seo@samsung.com>
packaging/gcc-aarch64.spec
packaging/gcc-armv7l.spec
packaging/gcc-force-options
packaging/gcc-unforce-options
packaging/linaro-gcc.spec