summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2013-01-06 00:15:41 +0100
committerAbdoulaye Walsimou Gaye <awg@embtoolkit.org>2013-01-06 00:15:41 +0100
commit03c4c8ba15488540a989d69434928014ac8ab733 (patch)
tree2bd4919ffad89b604390ca797a5c6b994a688d05
parentbce8ebc06c0e58f5b3d6557476e47a023c5436bb (diff)
downloadembtoolkit-03c4c8ba15488540a989d69434928014ac8ab733.tar.gz
embtoolkit-03c4c8ba15488540a989d69434928014ac8ab733.tar.bz2
embtoolkit-03c4c8ba15488540a989d69434928014ac8ab733.tar.xz
Toolchain: eglibc/uClibc: improve dummy libc install after headers install
Signed-off-by: Abdoulaye Walsimou Gaye <awg@embtoolkit.org>
-rw-r--r--mk/eglibc.mk17
-rwxr-xr-xmk/uclibc.mk17
2 files changed, 30 insertions, 4 deletions
diff --git a/mk/eglibc.mk b/mk/eglibc.mk
index ba41a81..6e5c197 100644
--- a/mk/eglibc.mk
+++ b/mk/eglibc.mk
@@ -56,6 +56,20 @@ eglibc_optgroups_f := $(EGLIBC_BUILD_DIR)/option-groups.config
eglibc_headers_optgroups_f := $(EGLIBC_HEADERS_BUILD_DIR)/option-groups.config
#
+# Install dummy eglibc needed to build gcc stage 2
+#
+define __embtk_install_eglibc_dummy
+ $(TARGETGCC) -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o $(embtk_sysroot)/$(LIBDIR)/libc.so.6
+ echo '/* GNU ld script - Dummy eglibc linker script. */' \
+ > $(embtk_sysroot)/usr/$(LIBDIR)/libc.so
+ $(TARGETGCC) -Wl,--verbose 2>&1 | sed -n '/OUTPUT_FORMAT/,/)/p' \
+ >> $(embtk_sysroot)/usr/$(LIBDIR)/libc.so
+ echo 'GROUP(AS_NEEDED(libc.so.6))' \
+ >> $(embtk_sysroot)/usr/$(LIBDIR)/libc.so
+endef
+
+#
# eglibc headers install
#
@@ -87,8 +101,7 @@ define __embtk_install_eglibc_headers
cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crt1.o $(embtk_sysroot)/usr/$(LIBDIR)/
cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crti.o $(embtk_sysroot)/usr/$(LIBDIR)/
cp $(EGLIBC_HEADERS_BUILD_DIR)/csu/crtn.o $(embtk_sysroot)/usr/$(LIBDIR)/
- $(TARGETGCC) -nostdlib -nostartfiles -shared -x c /dev/null \
- -o $(embtk_sysroot)/usr/$(LIBDIR)/libc.so
+ $(__embtk_install_eglibc_dummy)
touch $(call __embtk_pkg_dotinstalled_f,eglibc_headers)
endef
diff --git a/mk/uclibc.mk b/mk/uclibc.mk
index c0bb148..65fc473 100755
--- a/mk/uclibc.mk
+++ b/mk/uclibc.mk
@@ -57,6 +57,20 @@ UCLIBC_MAKE_OPTS += KERNEL_HEADERS="$(embtk_sysroot)/usr/include/"
UCLIBC_MAKE_OPTS += UCLIBC_EXTRA_CFLAGS="$(EMBTK_UCLIBC_CFLAGS)"
#
+# Install dummy uClibc needed to build gcc stage 2
+#
+define __embtk_install_uclibc_dummy
+ $(TARGETGCC) -nostdlib -nostartfiles -shared -x c /dev/null \
+ -o $(embtk_sysroot)/$(LIBDIR)/libc.so.0
+ echo '/* GNU ld script - Dummy uClibc linker script. */' \
+ > $(embtk_sysroot)/usr/$(LIBDIR)/libc.so
+ $(TARGETGCC) -Wl,--verbose 2>&1 | sed -n '/OUTPUT_FORMAT/,/)/p' \
+ >> $(embtk_sysroot)/usr/$(LIBDIR)/libc.so
+ echo 'GROUP(AS_NEEDED(libc.so.0))' \
+ >> $(embtk_sysroot)/usr/$(LIBDIR)/libc.so
+endef
+
+#
# uClibc libraries install
#
define embtk_install_uclibc
@@ -76,8 +90,7 @@ define __embtk_install_uclibc_headers
$(MAKE) -C $(UCLIBC_BUILD_DIR) $(UCLIBC_MAKE_OPTS) install_headers
$(MAKE) -C $(UCLIBC_BUILD_DIR) $(UCLIBC_MAKE_OPTS) install_startfiles
$(MAKE) -C $(UCLIBC_BUILD_DIR) $(UCLIBC_MAKE_OPTS) install_startfiles
- $(TARGETGCC) -nostdlib -nostartfiles -shared -x c /dev/null \
- -o $(embtk_sysroot)/usr/$(LIBDIR)/libc.so
+ $(__embtk_install_uclibc_dummy)
touch $(call __embtk_pkg_dotinstalled_f,uclibc_headers)
endef