LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File glibc-suse-note.diff of Package glibc.openSUSE_11.3 (Project home:lnussel:crypt_blowfish:maint)

This patch creates a SuSE .note section with version number 10.2

================================================================================
Index: Makerules
===================================================================
--- Makerules.orig
+++ Makerules
@@ -475,6 +475,7 @@ $(common-objpfx)shlib.lds: $(common-objp
 	      -e '/^=========/,/^=========/!d;/^=========/d' \
 	      $(if $(filter yes,$(have-hash-style)), \
 		   -e 's/^.*\.gnu\.hash[ 	]*:.*$$/  .note.ABI-tag : { *(.note.ABI-tag) } &/' \
+		   -e 's/^.*\.gnu\.hash[ 	]*:.*$$/  .note.ABI-tag : { *(.note.ABI-tag) } .note.SuSE : { *(.note.SuSE) } &/' \
 		   -e '/^[ 	]*\.hash[ 	]*:.*$$/{h;d;}' \
 		   -e '/DATA_SEGMENT_ALIGN/{H;g}' \
 		, \
@@ -500,7 +501,7 @@ common-generated += shlib.lds
 
 define build-shlib
 $(build-shlib-helper) -o $@ -T $(common-objpfx)shlib.lds \
-	  $(csu-objpfx)abi-note.o $(build-shlib-objlist)
+	  $(csu-objpfx)abi-note.o $(csu-objpfx)suse-note.o $(build-shlib-objlist)
 endef
 else
 ifneq (,$(findstring aix,$(config-os)))
@@ -542,7 +543,7 @@ ifeq (yes,$(elf))
 # not for shared objects
 define build-module
 $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \
-	  $(csu-objpfx)abi-note.o $(build-module-objlist)
+	  $(csu-objpfx)abi-note.o $(csu-objpfx)suse-note.o $(build-module-objlist)
 endef
 define build-module-asneeded
 $(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \
Index: csu/Makefile
===================================================================
--- csu/Makefile.orig
+++ csu/Makefile
@@ -125,7 +125,7 @@ $(objpfx)defs.h: $(objpfx)initfini.s
 endif
 
 ifeq (yes,$(elf))
-extra-objs += abi-note.o init.o
+extra-objs += abi-note.o suse-note.o init.o
 asm-CPPFLAGS += -I$(objpfx).
 endif
 
@@ -143,12 +143,15 @@ ifeq (yes,$(elf))
 # We link the ELF startfile along with a SHT_NOTE section indicating
 # the kernel ABI the binaries linked with this library will require.
 $(objpfx)$(start-installed-name): $(objpfx)start.o $(objpfx)abi-note.o \
+				  $(objpfx)suse-note.o \
 				  $(objpfx)init.o
 	$(link-relocatable)
 $(objpfx)S$(start-installed-name): $(objpfx)start.os $(objpfx)abi-note.o \
+				  $(objpfx)suse-note.o \
 				  $(objpfx)init.o
 	$(link-relocatable)
 $(objpfx)b$(start-installed-name): $(objpfx)start.ob $(objpfx)abi-note.ob \
+				  $(objpfx)suse-note.ob \
 				  $(objpfx)init.ob
 	$(link-relocatable)
 else
Index: csu/suse-note.S
===================================================================
--- /dev/null
+++ csu/suse-note.S
@@ -0,0 +1,59 @@
+/* Special .init and .fini section support.
+   Copyright (C) 1997, 2001, 2002 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   In addition to the permissions in the GNU Lesser General Public
+   License, the Free Software Foundation gives you unlimited
+   permission to link the compiled version of this file with other
+   programs, and to distribute those programs without any restriction
+   coming from the use of this file.  (The Lesser General Public
+   License restrictions do apply in other respects; for example, they
+   cover modification of the file, and distribution when not linked
+   into another program.)
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+/* Look in abi-note.S for the definition of an ELF note section.  */
+
+#include <config.h>
+
+#define PROD_TYPE_BOX 0
+#define PROD_TYPE_SLES 1
+
+#define NOTE_VERSION 1
+#define PROD_TYPE PROD_TYPE_BOX
+#define PROD_MAJOR 10
+#define PROD_MINOR 2
+
+/* The linker (GNU ld 2.8 and later) recognizes an allocated section whose
+   name begins with `.note' and creates a PT_NOTE program header entry
+   pointing at it. */
+
+	.section ".note.SuSE", "a"
+	.p2align 2
+	.long 1f - 0f		/* name length */
+	.long 3f - 2f		/* data length */
+	.long 0x45537553	/* note type ("SuSE" in little endian) */
+0:	.asciz "SuSE"		/* vendor name */
+1:
+	.p2align 2
+2:				/* Data */
+	.byte NOTE_VERSION      /* Version of following data */
+	.byte PROD_TYPE		/* product type (box, sles, nld, whatever) */
+	.byte PROD_MAJOR	/* product version */
+	.byte PROD_MINOR	/* product minor version */
+3:
+	.p2align 2		/* pad out section */