patches/glibc/2.5/100-cygwin.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
parent 744 4bf8448536d5
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.
     1 Fixes
     2 elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
     3 ...
     4 when building glibc-2.3.x on cygwin
     5 
     6 Idea from
     7 http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
     8 Basically, make glibc use .oST as suffix for 'object static'
     9 instead of .oS, since cygwin has trouble distinguishing .os from .oS
    10 (Original patch had .on, but .oST is more mnemonic for 'object static')
    11 
    12 glibc-linuxthreads-2.3.5 also requires a patch, see 
    13 ../glibc-linuxthreads-2.3.5/glibc-linuxthreads-2.3.5-cygwin.patch
    14 
    15 [ forward ported to glibc-2.3.5 by Petr Cvachoucek:
    16 
    17 Message-ID: <4282FCBA.3040000@unicontrols.cz>
    18 Date: Thu, 12 May 2005 08:50:34 +0200
    19 From: Petr Cvachoucek <cvachoucek@unicontrols.cz>
    20 To: Dan Kegel <dank@kegel.com>
    21 CC:  crossgcc@sources.redhat.com
    22 Subject: Patches to build gcc 3.4.3 / glibc 2.3.5 on cygwin
    23 
    24 Hi Dan,
    25 following patches are needed to build gcc-3.4.3/glibc-2.3.5 toolchain
    26 on cygwin. Tested to build toolchains for powerpc 604 and 750 targets.
    27 
    28 -- 
    29                      Petr Cvachoucek
    30                      Unicontrols a.s.
    31                      http://www.unicontrols.cz
    32 ]
    33 
    34 diff -aur glibc-2.3.5/Makeconfig glibc-2.3.5-cygwin/Makeconfig
    35 --- glibc-2.3.5/Makeconfig	2005-02-16 11:50:19.000000000 +0100
    36 +++ glibc-2.3.5-cygwin/Makeconfig	2005-05-11 08:24:51.046875000 +0200
    37 @@ -472,7 +472,7 @@
    38  # run the linked programs.
    39  link-libc = -Wl,-rpath-link=$(rpath-link) \
    40  	    $(common-objpfx)libc.so$(libc.so-version) \
    41 -	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
    42 +	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
    43  # This is how to find at build-time things that will be installed there.
    44  rpath-dirs = math elf dlfcn nss nis rt resolv crypt
    45  endif
    46 @@ -693,7 +693,7 @@
    47  # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
    48  # to pass different flags for each flavor.
    49  libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
    50 -all-object-suffixes := .o .os .op .og .ob .oS
    51 +all-object-suffixes := .o .os .op .og .ob .oST
    52  object-suffixes :=
    53  CPPFLAGS-.o = $(pic-default)
    54  CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
    55 @@ -749,14 +749,14 @@
    56  
    57  ifeq (yes,$(build-shared))
    58  # Build special library that contains the static-only routines for libc.
    59 -object-suffixes-for-libc += .oS
    60 +object-suffixes-for-libc += .oST
    61  
    62  # Must build the routines as PIC, though, because they can end up in (users')
    63  # shared objects.  We don't want to use CFLAGS-os because users may, for
    64  # example, make that processor-specific.
    65 -CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
    66 -CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
    67 -libtype.oS = lib%_nonshared.a
    68 +CFLAGS-.oST = $(CFLAGS-.o) $(PIC-ccflag)
    69 +CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
    70 +libtype.oST = lib%_nonshared.a
    71  endif
    72  
    73  # The assembler can generate debug information too.
    74 diff -aur glibc-2.3.5/Makerules glibc-2.3.5-cygwin/Makerules
    75 --- glibc-2.3.5/Makerules	2004-12-15 19:52:39.000000000 +0100
    76 +++ glibc-2.3.5-cygwin/Makerules	2005-05-11 08:25:33.578125000 +0200
    77 @@ -417,7 +417,7 @@
    78  # Bounded pointer thunks are only built for *.ob
    79  elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
    80  
    81 -elide-routines.oS += $(filter-out $(static-only-routines),\
    82 +elide-routines.oST += $(filter-out $(static-only-routines),\
    83  				  $(routines) $(aux) $(sysdep_routines)) \
    84  		     $(elide-bp-thunks)
    85  elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
    86 @@ -981,7 +981,7 @@
    87  install: $(inst_libdir)/libc.so
    88  $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
    89  			$(common-objpfx)libc.so$(libc.so-version) \
    90 -			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
    91 +			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
    92  						  $(libprefix)$(libc-name)) \
    93  			$(+force)
    94  	(echo '/* GNU ld script';\
    95 @@ -989,7 +989,7 @@
    96  	 echo '   the static library, so try that secondarily.  */';\
    97  	 cat $<; \
    98  	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
    99 -	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
   100 +	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
   101 	      ' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' \
   102  	) > $@.new
   103 	mv -f $@.new $@
   104 diff -aur glibc-2.3.5/extra-lib.mk glibc-2.3.5-cygwin/extra-lib.mk
   105 --- glibc-2.3.5/extra-lib.mk	2004-12-02 23:54:47.000000000 +0100
   106 +++ glibc-2.3.5-cygwin/extra-lib.mk	2005-05-11 08:27:28.156250000 +0200
   107 @@ -13,7 +13,7 @@
   108  
   109  ifneq (,$($(lib)-static-only-routines))
   110  ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version)))
   111 -object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS)
   112 +object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oST)
   113  endif
   114  endif
   115  
   116 @@ -29,7 +29,7 @@
   117  
   118  # Add each flavor of library to the lists of things to build and install.
   119  install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o)))
   120 -extra-objs += $(foreach o,$(filter-out .os .oS,$(object-suffixes-$(lib))),\
   121 +extra-objs += $(foreach o,$(filter-out .os .oST,$(object-suffixes-$(lib))),\
   122  			$(patsubst %,%$o,$(filter-out \
   123  					   $($(lib)-shared-only-routines),\
   124  					   $(all-$(lib)-routines))))
   125 @@ -57,7 +57,7 @@
   126  
   127  
   128  # Use o-iterator.mk to generate a rule for each flavor of library.
   129 -ifneq (,$(filter-out .os .oS,$(object-suffixes-$(lib))))
   130 +ifneq (,$(filter-out .os .oST,$(object-suffixes-$(lib))))
   131  define o-iterator-doit
   132  $(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \
   133    $(patsubst %,$(objpfx)%$o,\
   134 @@ -65,7 +65,7 @@
   135  			  $(all-$(lib)-routines))); \
   136  	$$(build-extra-lib)
   137  endef
   138 -object-suffixes-left = $(filter-out .os .oS,$(object-suffixes-$(lib)))
   139 +object-suffixes-left = $(filter-out .os .oST,$(object-suffixes-$(lib)))
   140  include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left))
   141  endif
   142  
   143 @@ -77,9 +77,9 @@
   144  	$(build-extra-lib)
   145  endif
   146  
   147 -ifneq (,$(filter .oS,$(object-suffixes-$(lib))))
   148 -$(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \
   149 -  $(patsubst %,$(objpfx)%.oS,\
   150 +ifneq (,$(filter .oST,$(object-suffixes-$(lib))))
   151 +$(objpfx)$(patsubst %,$(libtype.oST),$(lib:lib%=%)): \
   152 +  $(patsubst %,$(objpfx)%.oST,\
   153  	     $(filter $($(lib)-static-only-routines),\
   154  		      $(all-$(lib)-routines)))
   155  	$(build-extra-lib)
   156 diff -aur glibc-2.3.5/nptl/Makefile glibc-2.3.5-cygwin/nptl/Makefile
   157 --- glibc-2.3.5/nptl/Makefile	2005-02-16 09:45:56.000000000 +0100
   158 +++ glibc-2.3.5-cygwin/nptl/Makefile	2005-05-11 08:26:01.812500000 +0200
   159 @@ -375,7 +375,7 @@
   160  
   161  $(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \
   162  			      $(objpfx)libpthread.so$(libpthread.so-version) \
   163 -			      $(inst_libdir)/$(patsubst %,$(libtype.oS),\
   164 +			      $(inst_libdir)/$(patsubst %,$(libtype.oST),\
   165  							$(libprefix)pthread) \
   166  			      $(+force)
   167  	(echo '/* GNU ld script';\
   168 @@ -383,7 +383,7 @@
   169  	 echo '   the static library, so try that secondarily.  */';\
   170  	 cat $<; \
   171  	 echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \
   172 -	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\
   173 +	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)pthread)'\
   174  	      ')' \
   175  	) > $@.new
   176  	mv -f $@.new $@
   177 diff -aur glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
   178 --- glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile	2004-08-16 08:46:14.000000000 +0200
   179 +++ glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile	2005-05-11 08:26:25.937500000 +0200
   180 @@ -10,4 +10,4 @@
   181  ASFLAGS-.op += -Wa,-Av9a
   182  ASFLAGS-.og += -Wa,-Av9a
   183  ASFLAGS-.ob += -Wa,-Av9a
   184 -ASFLAGS-.oS += -Wa,-Av9a
   185 +ASFLAGS-.oST += -Wa,-Av9a
   186 
   187 Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>