patches/glibc/2.7/300-binutils-_begin.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Jan 17 23:06:02 2010 +0100 (2010-01-17)
changeset 1740 c57458bb354d
permissions -rw-r--r--
configure: do not require hg when configuring in an hg clone

When configuring in an hg clone, we need hg to compute the version string.
It can happen that users do not have Mercurial (eg. if they got a snapshot
rather that they did a full clone). In this case, we can still run, of
course, so simply fill the version string with a sufficiently explicit
value, that does not require hg. The date is a good candidate.
yann@1310
     1
--- glibc-2.7.OLD/elf/Makefile	2009-04-22 17:08:55.000000000 +0300
yann@1310
     2
+++ glibc-2.7/elf/Makefile	2009-04-22 18:09:18.000000000 +0300
yann@1310
     3
@@ -1,4 +1,4 @@
yann@1310
     4
-# Copyright (C) 1995-2004, 2005, 2006, 2007 Free Software Foundation, Inc.
yann@1310
     5
+# Copyright (C) 1995-2007, 2008, 2009 Free Software Foundation, Inc.
yann@1310
     6
 # This file is part of the GNU C Library.
yann@1310
     7
 
yann@1310
     8
 # The GNU C Library is free software; you can redistribute it and/or
yann@1310
     9
@@ -23,7 +23,7 @@
yann@1310
    10
 headers		= elf.h bits/elfclass.h link.h bits/link.h
yann@1310
    11
 routines	= $(dl-routines) dl-support dl-iteratephdr \
yann@1310
    12
 		  dl-addr enbl-secure dl-profstub \
yann@1310
    13
-		  dl-origin dl-libc dl-sym dl-tsd
yann@1310
    14
+		  dl-origin dl-libc dl-sym dl-tsd dl-sysdep
yann@1310
    15
 
yann@1310
    16
 # The core dynamic linking functions are in libc for the static and
yann@1310
    17
 # profiled libraries.
yann@1310
    18
@@ -33,7 +33,8 @@
yann@1310
    19
 				  execstack caller open close trampoline)
yann@1310
    20
 all-dl-routines = $(dl-routines) $(sysdep-dl-routines)
yann@1310
    21
 # But they are absent from the shared libc, because that code is in ld.so.
yann@1310
    22
-elide-routines.os = $(all-dl-routines) dl-support enbl-secure dl-origin
yann@1310
    23
+elide-routines.os = $(all-dl-routines) dl-support enbl-secure dl-origin \
yann@1310
    24
+		    dl-sysdep
yann@1310
    25
 shared-only-routines += dl-caller
yann@1310
    26
 
yann@1310
    27
 # ld.so uses those routines, plus some special stuff for being the program
yann@1310
    28
@@ -120,13 +121,6 @@
yann@1310
    29
 install-bin-script = ldd
yann@1310
    30
 endif
yann@1310
    31
 
yann@1310
    32
-ifeq (yes,$(build-static-nss))
yann@1310
    33
-nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
yann@1310
    34
-resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
yann@1310
    35
-otherlibs += $(nssobjdir)/libnss_files.a $(resolvobjdir)/libnss_dns.a \
yann@1310
    36
-	     $(resolvobjdir)/libresolv.a
yann@1310
    37
-endif
yann@1310
    38
-
yann@1310
    39
 others		= sprof sln
yann@1310
    40
 install-bin	= sprof
yann@1310
    41
 others-static   = sln
yann@1310
    42
@@ -165,14 +159,14 @@
yann@1310
    43
 endif
yann@1310
    44
 ifeq (yes,$(build-shared))
yann@1310
    45
 tests += loadtest restest1 preloadtest loadfail multiload origtest resolvfail \
yann@1310
    46
-	 constload1 order $(tests-vis-$(have-protected)) noload filter unload \
yann@1310
    47
+	 constload1 order vismain noload filter unload \
yann@1310
    48
 	 reldep reldep2 reldep3 reldep4 nodelete nodelete2 \
yann@1310
    49
 	 nodlopen nodlopen2 neededtest neededtest2 \
yann@1310
    50
 	 neededtest3 neededtest4 unload2 lateglobal initfirst global \
yann@1310
    51
 	 restest2 next dblload dblunload reldep5 reldep6 reldep7 reldep8 \
yann@1310
    52
 	 circleload1 tst-tls3 tst-tls4 tst-tls5 tst-tls6 tst-tls7 tst-tls8 \
yann@1310
    53
 	 tst-tls10 tst-tls11 tst-tls12 tst-tls13 tst-tls14 tst-tls15 \
yann@1310
    54
-	 tst-tls-dlinfo \
yann@1310
    55
+	 tst-tls16 tst-tls17 tst-tls18 tst-tls-dlinfo \
yann@1310
    56
 	 tst-align tst-align2 $(tests-execstack-$(have-z-execstack)) \
yann@1310
    57
 	 tst-dlmodcount tst-dlopenrpath tst-deep1 \
yann@1310
    58
 	 tst-dlmopen1 tst-dlmopen2 tst-dlmopen3 \
yann@1310
    59
@@ -181,16 +175,17 @@
yann@1310
    60
 	 tst-stackguard1 tst-addr1 tst-thrlock
yann@1310
    61
 #	 reldep9
yann@1310
    62
 test-srcs = tst-pathopt
yann@1310
    63
-tests-vis-yes = vismain
yann@1310
    64
 tests-execstack-yes = tst-execstack tst-execstack-needed tst-execstack-prog
yann@1310
    65
 endif
yann@1310
    66
 ifeq (yesyes,$(have-fpie)$(build-shared))
yann@1310
    67
 tests: $(objpfx)tst-pie1.out
yann@1310
    68
 endif
yann@1310
    69
 tests: $(objpfx)tst-leaks1-mem
yann@1310
    70
+tlsmod17a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
yann@1310
    71
+tlsmod18a-suffixes = 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
yann@1310
    72
 modules-names = testobj1 testobj2 testobj3 testobj4 testobj5 testobj6 \
yann@1310
    73
 		testobj1_1 failobj constload2 constload3 unloadmod \
yann@1310
    74
-		dep1 dep2 dep3 dep4 $(modules-vis-$(have-protected)) \
yann@1310
    75
+		dep1 dep2 dep3 dep4 vismod1 vismod2 vismod3 \
yann@1310
    76
 		nodelmod1 nodelmod2 nodelmod3 nodelmod4 \
yann@1310
    77
 		nodel2mod1 nodel2mod2 nodel2mod3 \
yann@1310
    78
 		nodlopenmod nodlopenmod2 filtmod1 filtmod2 \
yann@1310
    79
@@ -206,7 +201,10 @@
yann@1310
    80
 		tst-tlsmod5 tst-tlsmod6 tst-tlsmod7 tst-tlsmod8 \
yann@1310
    81
 		tst-tlsmod9 tst-tlsmod10 tst-tlsmod11 tst-tlsmod12 \
yann@1310
    82
 		tst-tlsmod13 tst-tlsmod13a tst-tlsmod14a tst-tlsmod14b \
yann@1310
    83
-		tst-tlsmod15a tst-tlsmod15b \
yann@1310
    84
+		tst-tlsmod15a tst-tlsmod15b tst-tlsmod16a tst-tlsmod16b \
yann@1310
    85
+		$(patsubst %,tst-tlsmod17a%,$(tlsmod17a-suffixes)) \
yann@1310
    86
+		tst-tlsmod17b \
yann@1310
    87
+		$(patsubst %,tst-tlsmod18a%,$(tlsmod18a-suffixes)) \
yann@1310
    88
 		circlemod1 circlemod1a circlemod2 circlemod2a \
yann@1310
    89
 		circlemod3 circlemod3a \
yann@1310
    90
 		reldep8mod1 reldep8mod2 reldep8mod3 \
yann@1310
    91
@@ -226,7 +224,6 @@
yann@1310
    92
 ifeq (yesyes,$(have-fpie)$(build-shared))
yann@1310
    93
 modules-names += tst-piemod1
yann@1310
    94
 endif
yann@1310
    95
-modules-vis-yes = vismod1 vismod2 vismod3
yann@1310
    96
 modules-execstack-yes = tst-execstack-mod
yann@1310
    97
 extra-test-objs += $(addsuffix .os,$(strip $(modules-names)))
yann@1310
    98
 # We need this variable to be sure the test modules get the right CPPFLAGS.
yann@1310
    99
@@ -307,7 +304,7 @@
yann@1310
   100
 		  $(LDFLAGS-rtld) -Wl,-z,defs -Wl,--verbose 2>&1 |	\
yann@1310
   101
 		  LC_ALL=C \
yann@1310
   102
 		  sed -e '/^=========/,/^=========/!d;/^=========/d'	\
yann@1310
   103
-		      -e 's/\. = 0 + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
yann@1310
   104
+		      -e 's/\. = .* + SIZEOF_HEADERS;/& _begin = . - SIZEOF_HEADERS;/' \
yann@1310
   105
 		  > $@.lds
yann@1310
   106
 	$(LINK.o) -nostdlib -nostartfiles -shared -o $@			\
yann@1310
   107
 		  $(LDFLAGS-rtld) -Wl,-z,defs $(z-now-$(bind-now))	\
yann@1310
   108
@@ -315,7 +312,7 @@
yann@1310
   109
 		  -Wl,-soname=$(rtld-installed-name) -T $@.lds
yann@1310
   110
 	rm -f $@.lds
yann@1310
   111
 	readelf -s $@ \
yann@1310
   112
-	  | awk '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }'
yann@1310
   113
+	  | $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }'
yann@1310
   114
 
yann@1310
   115
 # interp.c exists just to get this string into the libraries.
yann@1310
   116
 CFLAGS-interp.c = -D'RUNTIME_LINKER="$(slibdir)/$(rtld-installed-name)"' \
yann@1310
   117
@@ -499,6 +496,7 @@
yann@1310
   118
 tst-tlsmod14a.so-no-z-defs = yes
yann@1310
   119
 tst-tlsmod14b.so-no-z-defs = yes
yann@1310
   120
 tst-tlsmod15a.so-no-z-defs = yes
yann@1310
   121
+tst-tlsmod16b.so-no-z-defs = yes
yann@1310
   122
 circlemod2.so-no-z-defs = yes
yann@1310
   123
 circlemod3.so-no-z-defs = yes
yann@1310
   124
 circlemod3a.so-no-z-defs = yes
yann@1310
   125
@@ -718,6 +716,22 @@
yann@1310
   126
 
yann@1310
   127
 
yann@1310
   128
 
yann@1310
   129
+$(objpfx)tst-tls16: $(libdl)
yann@1310
   130
+$(objpfx)tst-tls16.out: $(objpfx)tst-tlsmod16a.so $(objpfx)tst-tlsmod16b.so
yann@1310
   131
+
yann@1310
   132
+$(objpfx)tst-tls17: $(libdl)
yann@1310
   133
+$(objpfx)tst-tls17.out: $(objpfx)tst-tlsmod17b.so
yann@1310
   134
+$(patsubst %,$(objpfx)tst-tlsmod17a%.os,$(tlsmod17a-suffixes)): $(objpfx)tst-tlsmod17a%.os : tst-tlsmod17a.c
yann@1310
   135
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ -DN=$* -DNOT_IN_libc=1 $<
yann@1310
   136
+$(patsubst %,$(objpfx)tst-tlsmod17a%.so,$(tlsmod17a-suffixes)): $(objpfx)tst-tlsmod17a%.so: $(objpfx)ld.so
yann@1310
   137
+$(objpfx)tst-tlsmod17b.so: $(patsubst %,$(objpfx)tst-tlsmod17a%.so,$(tlsmod17a-suffixes))
yann@1310
   138
+
yann@1310
   139
+$(objpfx)tst-tls18: $(libdl)
yann@1310
   140
+$(objpfx)tst-tls18.out: $(patsubst %,$(objpfx)tst-tlsmod18a%.so,$(tlsmod18a-suffixes))
yann@1310
   141
+$(patsubst %,$(objpfx)tst-tlsmod18a%.os,$(tlsmod18a-suffixes)): $(objpfx)tst-tlsmod18a%.os : tst-tlsmod18a.c
yann@1310
   142
+	$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ -DN=$* -DNOT_IN_libc=1 $<
yann@1310
   143
+$(patsubst %,$(objpfx)tst-tlsmod18a%.so,$(tlsmod18a-suffixes)): $(objpfx)tst-tlsmod18a%.so: $(objpfx)ld.so
yann@1310
   144
+
yann@1310
   145
 CFLAGS-tst-align.c = $(stack-align-test-flags)
yann@1310
   146
 CFLAGS-tst-align2.c = $(stack-align-test-flags)
yann@1310
   147
 CFLAGS-tst-alignmod.c = $(stack-align-test-flags)
yann@1310
   148
@@ -804,7 +818,7 @@
yann@1310
   149
 	cmp $@ tst-array5-static.exp > /dev/null
yann@1310
   150
 
yann@1310
   151
 ifeq (yesyes,$(have-fpie)$(build-shared))
yann@1310
   152
-CFLAGS-tst-pie1.c += -fpie
yann@1310
   153
+CFLAGS-tst-pie1.c += $(pie-ccflag)
yann@1310
   154
 
yann@1310
   155
 $(objpfx)tst-pie1.out: $(objpfx)tst-pie1
yann@1310
   156
 	$(elf-objpfx)$(rtld-installed-name) \
yann@1310
   157
@@ -845,10 +859,14 @@
yann@1310
   158
 $(objpfx)tst-dlmodcount.out: $(test-modules)
yann@1310
   159
 
yann@1310
   160
 check-data := $(firstword $(wildcard \
yann@1310
   161
-	        $(patsubst %,../scripts/data/localplt-%.data,\
yann@1310
   162
-			   $(addsuffix -$(config-os),\
yann@1310
   163
-			   	       $(config-machine) $(base-machine))\
yann@1310
   164
-			   generic)))
yann@1310
   165
+	        $(foreach D,$(add-ons) scripts,\
yann@1310
   166
+	        	  $(patsubst %,$(..)$D/data/localplt-%.data,\
yann@1310
   167
+			   	     $(abi-name) \
yann@1310
   168
+			   	     $(addsuffix -$(config-os),\
yann@1310
   169
+				     		 $(config-machine) \
yann@1310
   170
+						 $(base-machine)) \
yann@1310
   171
+			   generic))))
yann@1310
   172
+
yann@1310
   173
 tests: $(objpfx)check-localplt.out
yann@1310
   174
 
yann@1310
   175
 ifeq ($(have-thread-library),yes)
yann@1310
   176
@@ -857,9 +875,11 @@
yann@1310
   177
 
yann@1310
   178
 $(objpfx)check-localplt.out: $(objpfx)check-localplt \
yann@1310
   179
 			     $(common-objpfx)libc.so \
yann@1310
   180
- 		    	     $(common-objpfx)math/libm.so $(thread-dso) \
yann@1310
   181
- 		    	     $(common-objpfx)rt/librt.so \
yann@1310
   182
- 		    	     $(common-objpfx)dlfcn/libdl.so \
yann@1310
   183
+		    	     $(common-objpfx)math/libm.so $(thread-dso) \
yann@1310
   184
+		    	     $(common-objpfx)rt/librt.so \
yann@1310
   185
+		    	     $(common-objpfx)dlfcn/libdl.so \
yann@1310
   186
+			     $(common-objpfx)resolv/libresolv.so \
yann@1310
   187
+			     $(common-objpfx)crypt/libcrypt.so \
yann@1310
   188
 			     $(check-data)
yann@1310
   189
 	$(dir $<)$(notdir $<) $(filter-out $< $(check-data),$^) | \
yann@1310
   190
 	  LC_ALL=C sort | \