100-cygwin.patch 7.4 KB
Newer Older
ZHJ0125's avatar
ZHJ0125 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187
Fixes
elf/librtld.os: In function `process_envvars': : undefined reference to `__access'
...
when building glibc-2.3.x on cygwin

Idea from
http://sources.redhat.com/ml/bug-glibc/2002-01/msg00071/glibc-2.2-cygin-shared.patch
Basically, make glibc use .oST as suffix for 'object static'
instead of .oS, since cygwin has trouble distinguishing .os from .oS
(Original patch had .on, but .oST is more mnemonic for 'object static')

glibc-linuxthreads-2.3.5 also requires a patch, see 
../glibc-linuxthreads-2.3.5/glibc-linuxthreads-2.3.5-cygwin.patch

[ forward ported to glibc-2.3.5 by Petr Cvachoucek:

Message-ID: <4282FCBA.3040000@unicontrols.cz>
Date: Thu, 12 May 2005 08:50:34 +0200
From: Petr Cvachoucek <cvachoucek@unicontrols.cz>
To: Dan Kegel <dank@kegel.com>
CC:  crossgcc@sources.redhat.com
Subject: Patches to build gcc 3.4.3 / glibc 2.3.5 on cygwin

Hi Dan,
following patches are needed to build gcc-3.4.3/glibc-2.3.5 toolchain
on cygwin. Tested to build toolchains for powerpc 604 and 750 targets.

-- 
                     Petr Cvachoucek
                     Unicontrols a.s.
                     http://www.unicontrols.cz
]

diff -aur glibc-2.3.5/Makeconfig glibc-2.3.5-cygwin/Makeconfig
--- glibc-2.3.5/Makeconfig	2005-02-16 11:50:19.000000000 +0100
+++ glibc-2.3.5-cygwin/Makeconfig	2005-05-11 08:24:51.046875000 +0200
@@ -472,7 +472,7 @@
 # run the linked programs.
 link-libc = -Wl,-rpath-link=$(rpath-link) \
 	    $(common-objpfx)libc.so$(libc.so-version) \
-	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) $(gnulib)
+	    $(common-objpfx)$(patsubst %,$(libtype.oST),c) $(gnulib)
 # This is how to find at build-time things that will be installed there.
 rpath-dirs = math elf dlfcn nss nis rt resolv crypt
 endif
@@ -693,7 +693,7 @@
 # The compilation rules use $(CPPFLAGS-${SUFFIX}) and $(CFLAGS-${SUFFIX})
 # to pass different flags for each flavor.
 libtypes = $(foreach o,$(object-suffixes-for-libc),$(libtype$o))
-all-object-suffixes := .o .os .op .og .ob .oS
+all-object-suffixes := .o .os .op .og .ob .oST
 object-suffixes :=
 CPPFLAGS-.o = $(pic-default)
 CFLAGS-.o = $(filter %frame-pointer,$(+cflags))
@@ -749,14 +749,14 @@
 
 ifeq (yes,$(build-shared))
 # Build special library that contains the static-only routines for libc.
-object-suffixes-for-libc += .oS
+object-suffixes-for-libc += .oST
 
 # Must build the routines as PIC, though, because they can end up in (users')
 # shared objects.  We don't want to use CFLAGS-os because users may, for
 # example, make that processor-specific.
-CFLAGS-.oS = $(CFLAGS-.o) $(PIC-ccflag)
-CPPFLAGS-.oS = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
-libtype.oS = lib%_nonshared.a
+CFLAGS-.oST = $(CFLAGS-.o) $(PIC-ccflag)
+CPPFLAGS-.oST = $(CPPFLAGS-.o) -DPIC -DLIBC_NONSHARED=1
+libtype.oST = lib%_nonshared.a
 endif
 
 # The assembler can generate debug information too.
diff -aur glibc-2.3.5/Makerules glibc-2.3.5-cygwin/Makerules
--- glibc-2.3.5/Makerules	2004-12-15 19:52:39.000000000 +0100
+++ glibc-2.3.5-cygwin/Makerules	2005-05-11 08:25:33.578125000 +0200
@@ -417,7 +417,7 @@
 # Bounded pointer thunks are only built for *.ob
 elide-bp-thunks = $(addprefix $(bppfx),$(bp-thunks))
 
-elide-routines.oS += $(filter-out $(static-only-routines),\
+elide-routines.oST += $(filter-out $(static-only-routines),\
 				  $(routines) $(aux) $(sysdep_routines)) \
 		     $(elide-bp-thunks)
 elide-routines.os += $(static-only-routines) $(elide-bp-thunks)
@@ -981,7 +981,7 @@
 install: $(inst_libdir)/libc.so
 $(inst_libdir)/libc.so: $(common-objpfx)format.lds \
 			$(common-objpfx)libc.so$(libc.so-version) \
-			$(inst_libdir)/$(patsubst %,$(libtype.oS),\
+			$(inst_libdir)/$(patsubst %,$(libtype.oST),\
 						  $(libprefix)$(libc-name)) \
 			$(+force)
 	(echo '/* GNU ld script';\
@@ -989,7 +989,7 @@
 	 echo '   the static library, so try that secondarily.  */';\
 	 cat $<; \
 	 echo 'GROUP ( $(slibdir)/libc.so$(libc.so-version)' \
-	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)$(libc-name))'\
+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)$(libc-name))'\
	      ' AS_NEEDED (' $(slibdir)/$(rtld-installed-name) ') )' \
 	) > $@.new
	mv -f $@.new $@
diff -aur glibc-2.3.5/extra-lib.mk glibc-2.3.5-cygwin/extra-lib.mk
--- glibc-2.3.5/extra-lib.mk	2004-12-02 23:54:47.000000000 +0100
+++ glibc-2.3.5-cygwin/extra-lib.mk	2005-05-11 08:27:28.156250000 +0200
@@ -13,7 +13,7 @@
 
 ifneq (,$($(lib)-static-only-routines))
 ifneq (,$(filter yesyes%,$(build-shared)$(elf)$($(lib).so-version)))
-object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oS)
+object-suffixes-$(lib) += $(filter-out $($(lib)-inhibit-o),.oST)
 endif
 endif
 
@@ -29,7 +29,7 @@
 
 # Add each flavor of library to the lists of things to build and install.
 install-lib += $(foreach o,$(object-suffixes-$(lib)),$(lib:lib%=$(libtype$o)))
-extra-objs += $(foreach o,$(filter-out .os .oS,$(object-suffixes-$(lib))),\
+extra-objs += $(foreach o,$(filter-out .os .oST,$(object-suffixes-$(lib))),\
 			$(patsubst %,%$o,$(filter-out \
 					   $($(lib)-shared-only-routines),\
 					   $(all-$(lib)-routines))))
@@ -57,7 +57,7 @@
 
 
 # Use o-iterator.mk to generate a rule for each flavor of library.
-ifneq (,$(filter-out .os .oS,$(object-suffixes-$(lib))))
+ifneq (,$(filter-out .os .oST,$(object-suffixes-$(lib))))
 define o-iterator-doit
 $(objpfx)$(patsubst %,$(libtype$o),$(lib:lib%=%)): \
   $(patsubst %,$(objpfx)%$o,\
@@ -65,7 +65,7 @@
 			  $(all-$(lib)-routines))); \
 	$$(build-extra-lib)
 endef
-object-suffixes-left = $(filter-out .os .oS,$(object-suffixes-$(lib)))
+object-suffixes-left = $(filter-out .os .oST,$(object-suffixes-$(lib)))
 include $(patsubst %,$(..)o-iterator.mk,$(object-suffixes-left))
 endif
 
@@ -77,9 +77,9 @@
 	$(build-extra-lib)
 endif
 
-ifneq (,$(filter .oS,$(object-suffixes-$(lib))))
-$(objpfx)$(patsubst %,$(libtype.oS),$(lib:lib%=%)): \
-  $(patsubst %,$(objpfx)%.oS,\
+ifneq (,$(filter .oST,$(object-suffixes-$(lib))))
+$(objpfx)$(patsubst %,$(libtype.oST),$(lib:lib%=%)): \
+  $(patsubst %,$(objpfx)%.oST,\
 	     $(filter $($(lib)-static-only-routines),\
 		      $(all-$(lib)-routines)))
 	$(build-extra-lib)
diff -aur glibc-2.3.5/nptl/Makefile glibc-2.3.5-cygwin/nptl/Makefile
--- glibc-2.3.5/nptl/Makefile	2005-02-16 09:45:56.000000000 +0100
+++ glibc-2.3.5-cygwin/nptl/Makefile	2005-05-11 08:26:01.812500000 +0200
@@ -375,7 +375,7 @@
 
 $(inst_libdir)/libpthread.so: $(common-objpfx)format.lds \
 			      $(objpfx)libpthread.so$(libpthread.so-version) \
-			      $(inst_libdir)/$(patsubst %,$(libtype.oS),\
+			      $(inst_libdir)/$(patsubst %,$(libtype.oST),\
 							$(libprefix)pthread) \
 			      $(+force)
 	(echo '/* GNU ld script';\
@@ -383,7 +383,7 @@
 	 echo '   the static library, so try that secondarily.  */';\
 	 cat $<; \
 	 echo 'GROUP ( $(slibdir)/libpthread.so$(libpthread.so-version)' \
-	      '$(libdir)/$(patsubst %,$(libtype.oS),$(libprefix)pthread)'\
+	      '$(libdir)/$(patsubst %,$(libtype.oST),$(libprefix)pthread)'\
 	      ')' \
 	) > $@.new
 	mv -f $@.new $@
diff -aur glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile
--- glibc-2.3.5/sysdeps/sparc/sparc32/sparcv9/Makefile	2004-08-16 08:46:14.000000000 +0200
+++ glibc-2.3.5-cygwin/sysdeps/sparc/sparc32/sparcv9/Makefile	2005-05-11 08:26:25.937500000 +0200
@@ -10,4 +10,4 @@
 ASFLAGS-.op += -Wa,-Av9a
 ASFLAGS-.og += -Wa,-Av9a
 ASFLAGS-.ob += -Wa,-Av9a
-ASFLAGS-.oS += -Wa,-Av9a
+ASFLAGS-.oST += -Wa,-Av9a

Signed-off-by: Robert P. J. Day <rpjday@mindspring.com>