patches/uClibc/0.9.28/110-install_dev.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Thu Jul 31 09:08:33 2008 +0000 (2008-07-31)
changeset 752 b037a5643e04
parent 1 eeea35fbf182
permissions -rw-r--r--
Have the glibc build use the cross-objdump, rather than the host one.
On some distros (eg. Fedora), the native objdump can not interpret objects not for the native system, and thus fail.
This commit adds a new patch against glibc-2.7 that introduces OBJDUMP_FOR_HOST, wich, if set, overides the detected objdump.

Note: bizarely enough, glibc already has code to detect the cross-objdump, but that does not work for an unknown reason... :-(

/trunk/patches/glibc/2.7/220-objdump_for_host.patch | 13 13 0 0 +++++++++
/trunk/scripts/build/libc_glibc.sh | 37 21 16 0 +++++++++++++++------------
2 files changed, 34 insertions(+), 16 deletions(-)
yann@1
     1
There are at least three weird glitches in the Makefile:
yann@1
     2
 - the test operator is a dual-equal sign (==) when it should be a single one (=);
yann@1
     3
 - the exclude options are not accepted as is by GNU tar;
yann@1
     4
 - how on earth could KERNEL_SOURCE possibly be equal to DEVEL_PREFIX ???
yann@1
     5
yann@1
     6
We (Cedric DUVAL and I, Yann E. MORIN) are not quite sure why it is that way.
yann@1
     7
We're not quite sure either on how to solve this.
yann@1
     8
yann@1
     9
What we need is to built a toolchain; in no way we need to install the linux headers.
yann@1
    10
  ==> systematically exclude them from the [s]tar command.
yann@1
    11
yann@1
    12
This patch is inspired by the svn repository of uClibc as of 20060209.
yann@1
    13
diff -dur /home/ymorin/dev/uClibc-0.9.28/Makefile uClibc-0.9.28/Makefile
yann@1
    14
--- /home/ymorin/dev/uClibc-0.9.28/Makefile	2005-08-18 00:49:49.000000000 +0200
yann@1
    15
+++ uClibc-0.9.28/Makefile	2006-02-09 17:06:58.000000000 +0100
yann@1
    16
@@ -158,12 +158,17 @@
yann@1
    17
 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)lib
yann@1
    18
 	$(INSTALL) -d $(PREFIX)$(DEVEL_PREFIX)include
yann@1
    19
 	-$(INSTALL) -m 644 lib/*.[ao] $(PREFIX)$(DEVEL_PREFIX)lib/
yann@1
    20
-	if [ "$(KERNEL_SOURCE)" == "$(DEVEL_PREFIX)" ] ; then \
yann@1
    21
-		extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
yann@1
    22
-	else \
yann@1
    23
-		extra_exclude="" ; \
yann@1
    24
-	fi ; \
yann@1
    25
-	tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
yann@1
    26
+#	if [ "$(KERNEL_SOURCE)" == "$(DEVEL_PREFIX)" ] ; then \
yann@1
    27
+#		extra_exclude="--exclude include/linux --exclude include/asm'*'" ; \
yann@1
    28
+#	else \
yann@1
    29
+#		extra_exclude="" ; \
yann@1
    30
+#	fi ; \
yann@1
    31
+#	tar -chf - include --exclude .svn --exclude CVS $$extra_exclude \
yann@1
    32
+#		| tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
yann@1
    33
+	printf ".svn\n.cvsignore\nCVS\n" > tar_exclude ; \
yann@1
    34
+	ls -1d include/linux include/asm* >> tar_exclude ; \
yann@1
    35
+	tar -chf - -X tar_exclude include \
yann@1
    36
 		| tar -xf - -C $(PREFIX)$(DEVEL_PREFIX)
yann@1
    37
+	rm -f tar_exclude
yann@1
    38
 ifneq ($(strip $(UCLIBC_HAS_FLOATS)),y)
yann@1
    39
 	# Remove floating point related headers since float support is disabled.