summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2013-10-08 18:16:59 (GMT)
committer Peter Korsgaard <peter@korsgaard.com>2013-10-08 20:57:49 (GMT)
commit03b05402df6f2a06ffc936c6364da5951f315197 (patch)
treeda78471e44e79a3a7fa7cf2f694ae2c8ff464633
parentd8664dd43853ee744eb5eefdc48f72750000c1aa (diff)
downloadbuildroot-03b05402df6f2a06ffc936c6364da5951f315197.tar.gz
buildroot-03b05402df6f2a06ffc936c6364da5951f315197.tar.bz2
glibc: fix glibc build by creating an empty gnu/stubs.h
The stubs.h header is not installed by install-headers, but is needed for the gcc build. An empty stubs.h will work, as explained in http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html. The same trick is used by Crosstool-NG. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
-rw-r--r--package/glibc/glibc.mk12
1 files changed, 12 insertions, 0 deletions
diff --git a/package/glibc/glibc.mk b/package/glibc/glibc.mk
index a9e89f1..4d89caf 100644
--- a/package/glibc/glibc.mk
+++ b/package/glibc/glibc.mk
@@ -47,6 +47,17 @@ else ifeq ($(BR2_MIPS_OABI32),y)
GLIBC_EXTRA_CFLAGS += -mabi=32
endif
+# The stubs.h header is not installed by install-headers, but is
+# needed for the gcc build. An empty stubs.h will work, as explained
+# in http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html. The same trick
+# is used by Crosstool-NG.
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT_GLIBC),y)
+define GLIBC_ADD_MISSING_STUB_H
+ mkdir -p $(STAGING_DIR)/usr/include/gnu
+ touch $(STAGING_DIR)/usr/include/gnu/stubs.h
+endef
+endif
+
# Even though we use the autotools-package infrastructure, we have to
# override the default configure commands for several reasons:
#
@@ -89,6 +100,7 @@ define GLIBC_CONFIGURE_CMDS
cp $(@D)/build/csu/crt1.o $(STAGING_DIR)/usr/lib/
cp $(@D)/build/csu/crti.o $(STAGING_DIR)/usr/lib/
cp $(@D)/build/csu/crtn.o $(STAGING_DIR)/usr/lib/
+ $(GLIBC_ADD_MISSING_STUB_H)
$(TARGET_CROSS)gcc -nostdlib \
-nostartfiles -shared -x c /dev/null -o $(STAGING_DIR)/usr/lib/libc.so
endef