Thanks for your nice patch! At Thu, 24 Apr 2003 00:03:53 +0200, Arnd Bergmann wrote: > Package: glibc > Version: 2.3.1-17 > Tags: patch > Severity: wishlist > > In order to start the new amd64 (aka x86-64) port of Debian, > a biarch i386/x86-64 glibc package will be needed. The required > changes are rather small, as most of this has already been > done for the sparc64 architecture and copied for s390x. > As a separate issue, these three 64 bit libc6 packaged should > probably be merged in order to prevent duplicate bugs.
Well, that's right. BTW, I still wonder how to support IA32 binaries. You're planning to support x86-64 native package with this patch for the present? As we discussed a few week ago, is dpkg change needed? If you have "roadmap" or "policy" to support x86-64, could you tell us? My concern is that if we use "/lib64", and all other binaries are also use "/lib64", but debian libraries are usually put on "/lib". Are there any problems of the difference between "/lib64" and "/lib"? > This bug has a circular dependency on Bug#190066 (gcc-3.3) and > another dependency on Bug#189350 (binutils). I have already > provided patches for both and uploaded binary packages to > http://www.arndb.de/debian/ . > > The attached patch contains further notes on the specific changes. > [2 glibc_2.3.1-17.biarch1.debdiff <text/x-diff; iso-8859-1 (7bit)>] > # The kernel headers for /usr/include/asm/ are normally (i.e. on s390x and > # sparc64) generated from a script distributed as > # /usr/src/kernel/generate-asm.sh. > # That approach is somewhat flawed because it doesn't work with > # the various kernel-headers packages that are distributed for > # some purpose. > # Here, I'm doing the same thing that generate-asm.sh does but > # in a simpler and more portable way. It can be easily extended > # for the other architectures and will also solve Bug#169358. > # > # The only backdraw is that in order to build lib64c itself, > # a temporary symlink $(objdir_64)/asm -> > # $(LINUX_SOURCE)/include/asm-x86_64 has to be created (see > # below). This problem was modified on s390. S390 does not have generate-asm.sh, and Gerhard Tonn sent me the nice patch to fix it. Please look at the current debian-glibc cvs, or sooner available 2.3.2-1. > diff -u glibc-2.3.1/debian/packages.d/libc-dev.mk > glibc-2.3.1/debian/packages.d/libc-dev.mk > --- glibc-2.3.1/debian/packages.d/libc-dev.mk > +++ glibc-2.3.1/debian/packages.d/libc-dev.mk > @@ -44,12 +44,11 @@ > rm -f $$link; ln -sf $$linksrc $$link; done > endif > $(make_directory) $(tmpdir)/[EMAIL PROTECTED](includedir) > - cp -a $(install_root)$(includedir) $(tmpdir)/$@/usr/ > ifeq ($(DEB_HOST_GNU_SYSTEM),linux) > $(make_directory) $(addprefix $(LINUX_SOURCE)/include/,asm linux) > cp -R $(LINUX_SOURCE)/include/linux/. $(tmpdir)/[EMAIL > PROTECTED](includedir)/linux/ > - cp -R $(LINUX_SOURCE)/include/asm/. $(tmpdir)/[EMAIL > PROTECTED](includedir)/asm/ > ifeq ($(DEB_HOST_GNU_CPU),sparc) > + cp -a $(install_root)$(includedir) $(tmpdir)/$@/usr/ > # Sparc has a 32/64 build setup, make sure we support it > cp -R $(LINUX_SOURCE)/include/asm-sparc \ > $(tmpdir)/[EMAIL PROTECTED](includedir)/. > @@ -60,7 +59,28 @@ > $(tmpdir)/[EMAIL PROTECTED](bindir)/generate-asm $(tmpdir)/[EMAIL > PROTECTED](includedir)/ > rm -rf $(tmpdir)/[EMAIL PROTECTED](includedir)/asm-sparc64 > else > +ifeq ($(DEB_HOST_GNU_CPU),i386) Umm, why is it "i386"? Should be "x86-64"? > + # only the x86_64 are biarch capable, so we can't use the > + # ones in install_root here > + cp -a $(install_root_64)$(includedir) $(tmpdir)/$@/usr/ > + # x86_64 has a 32/64 build setup, make sure we support it > + cp -R $(LINUX_SOURCE)/include/asm-{i386,x86_64} \ > + $(tmpdir)/[EMAIL PROTECTED](includedir)/. > + pushd $(tmpdir)/[EMAIL PROTECTED](includedir) ; \ > + mkdir asm ; \ > + for i in `( ls asm-i386 ; ls asm-x86_64 ) | sort | uniq` ; do \ > + printf > asm/$$i "%s\n%s\n%s\n%s\n%s\n" \ > + "#ifdef __x86_64__" \ > + "#include <asm-x86_64/$$i>" \ > + "#else" \ > + "#include <asm-i386/$$i>" \ > + "#endif" ; \ > + done ; \ > + popd > + rm -rf $(tmpdir)/[EMAIL PROTECTED](includedir)/asm-x86_64 > +else > ifeq ($(DEB_HOST_GNU_CPU),s390) > + cp -a $(install_root)$(includedir) $(tmpdir)/$@/usr/ > # IBM zSeries has a 32/64 build setup, make sure we support it > cp -R $(LINUX_SOURCE)/include/asm-{s390,s390x} \ > $(tmpdir)/[EMAIL PROTECTED](includedir)/. > @@ -69,11 +89,15 @@ > $(tmpdir)/[EMAIL PROTECTED](bindir)/generate-asm $(tmpdir)/[EMAIL > PROTECTED](includedir)/ > rm -rf $(tmpdir)/[EMAIL PROTECTED](includedir)/asm-s390x > else > + cp -a $(install_root)$(includedir) $(tmpdir)/$@/usr/ > cp -R $(LINUX_SOURCE)/include/asm/. $(tmpdir)/[EMAIL > PROTECTED](includedir)/asm/ > endif > endif > +endif > rm -rf $(tmpdir)/[EMAIL PROTECTED](includedir)/linux/modules > rm -f $(tmpdir)/[EMAIL PROTECTED](includedir)/linux/modversions.h > +else > + cp -a $(install_root)$(includedir) $(tmpdir)/$@/usr/ > endif > # Remove cruft from CVS trees > find $(tmpdir)/[EMAIL PROTECTED](includedir)/ -name CVS -type d | xargs > -r rm -rf > # The changes to debian/control, debian/rules, debian/packages.d/x86_64.mk, > # debian/lib64c/postinst, debian/control.in/x86_64 and > # debian/sysdeps/linux.mk are simple duplications of the respective s390x > # versions. The name for the 64 bit package, however is not libc6-x64-64 86 > # but lib64c6. I think it would be a good idea to rename the s390 and sparc > # packages to lib64c6 as well, as that will remove some complexity from the > # rules file and from dependend packages This seems good idea. But, hmm, do you think "libc64-6" or "libc6-64"? Do you assume other 64 bit libraries also have "lib64xxx"? > diff -u glibc-2.3.1/debian/control glibc-2.3.1/debian/control > --- glibc-2.3.1/debian/control > +++ glibc-2.3.1/debian/control > @@ -317,6 +317,27 @@ > which use the standard C library. This is the 64bit version of the > library, meant for zSeries systems. > > + > +Package: lib64c6 > +Architecture: i386 "i386"? Is it for the current hack to work i386 binaries on x86-64? > +Section: base > +Priority: required > +Depends: libc6 (= ${Source-Version}) > +Description: GNU C Library: 64bit Shared libraries for x86_64 > + This package includes shared versions of the standard C library and the > + standard math library, as well as many others. This is the 64bit version > + library, meant for AMD Hammer (x86_64) systems. > + > +Package: lib64c6-dev > +Architecture: i386 > +Section: devel > +Priority: standard > +Depends: lib64c6 (= ${Source-Version}), libc6-dev (= ${Source-Version}), > gcc-3.2 (>= 3.2.1-0pre1) > +Description: GNU C Library: 64bit Development Libraries for x86_64 > + Contains the symlinks and object files needed to compile and link programs > + which use the standard C library. This is the 64bit version of the > + library, meant for AMD Hammer (x86_64) systems. I think it's not generic description. If you think s390 and sparc64 are merged into 64 bit support libc6, then should be this description x86_64 specific? > Package: libc-udeb > Architecture: any > Section: debian-installer libc-udeb is needed for the next generation debian installer. We plan to modify the name from libc-udeb to libc6-udeb or libc6.1-udeb (<packgename><versionname>-udeb). x86_64's libc-udeb is lib64c6-udeb? But currently you have no need to care about libc-udeb. > diff -u glibc-2.3.1/debian/rules glibc-2.3.1/debian/rules > --- glibc-2.3.1/debian/rules > +++ glibc-2.3.1/debian/rules > @@ -176,6 +176,9 @@ > ifeq ($(DEB_HOST_GNU_CPU),sparc) > #include $(package_rules)/sparc64.mk > endif > +ifeq ($(DEB_HOST_GNU_CPU),i386) > +include $(package_rules)/x86_64.mk > +endif > ifeq ($(DEB_HOST_GNU_CPU),s390) > include $(package_rules)/s390x.mk > endif > diff -u glibc-2.3.1/debian/rules.d/control.mk > glibc-2.3.1/debian/rules.d/control.mk > --- glibc-2.3.1/debian/rules.d/control.mk > +++ glibc-2.3.1/debian/rules.d/control.mk > @@ -1,5 +1,5 @@ > # Add opt to this line to generate optimized packages > -control_deps := $(addprefix debian/control.in/, libc6 libc6.1 libc0.3 libc1 > sparc64 s390x) # > +control_deps := $(addprefix debian/control.in/, libc6 libc6.1 libc0.3 libc1 > sparc64 s390x x86_64) # > > threads_archs := alpha arm i386 m68k mips mipsel powerpc sparc ia64 hppa > s390 sh3 sh4 sh3eb sh4eb freebsd-i386 > > @@ -26,6 +26,7 @@ > cat debian/control.in/libc1 >> [EMAIL PROTECTED] > cat debian/control.in/sparc64 >> [EMAIL PROTECTED] > cat debian/control.in/s390x >> [EMAIL PROTECTED] > + cat debian/control.in/x86_64 >> [EMAIL PROTECTED] > # Uncomment this line to enable optimized packages > # cat debian/control.in/opt >> [EMAIL PROTECTED] > cat debian/control.in/libc-udeb >> [EMAIL PROTECTED] > diff -u glibc-2.3.1/debian/sysdeps/linux.mk > glibc-2.3.1/debian/sysdeps/linux.mk > --- glibc-2.3.1/debian/sysdeps/linux.mk > +++ glibc-2.3.1/debian/sysdeps/linux.mk > @@ -17,6 +17,10 @@ > # arch_packages += $(libc)-sparc64 $(libc)-dev-sparc64 > #endif > > +ifeq ($(DEB_HOST_GNU_CPU),i386) > + arch_packages += lib64c6 lib64c6-dev > +endif > + > ifeq ($(DEB_HOST_GNU_CPU),s390) > arch_packages += $(libc)-s390x $(libc)-dev-s390x > endif > only in patch2: > unchanged: It means that if build architecture is "i386", libc-64 is also made. However, I wonder it's really needed. > --- glibc-2.3.1.orig/debian/control.in/x86_64 > +++ glibc-2.3.1/debian/control.in/x86_64 > @@ -0,0 +1,21 @@ > + > +Package: lib64c6 > +Architecture: i386 > +Section: base > +Priority: required > +Depends: libc6 (= ${Source-Version}) > +Description: GNU C Library: 64bit Shared libraries for x86_64 > + This package includes shared versions of the standard C library and the > + standard math library, as well as many others. This is the 64bit version > + library, meant for AMD Hammer (x86_64) systems. > + > +Package: lib64c6-dev > +Architecture: i386 > +Section: devel > +Priority: standard > +Depends: lib64c6 (= ${Source-Version}), libc6-dev (= ${Source-Version}), > gcc-3.2 (>= 3.2.1-0pre1) > +Description: GNU C Library: 64bit Development Libraries for x86_64 > + Contains the symlinks and object files needed to compile and link programs > + which use the standard C library. This is the 64bit version of the > + library, meant for AMD Hammer (x86_64) systems. > + > only in patch2: > unchanged: I have the previous question for this part. > --- glibc-2.3.1.orig/debian/lib64c/postinst > +++ glibc-2.3.1/debian/lib64c/postinst > @@ -0,0 +1,6 @@ > +#!/bin/sh -e > + > +if [ "$1" = "configure" ] > +then > + ldconfig > +fi > only in patch2: > unchanged: > --- glibc-2.3.1.orig/debian/packages.d/x86_64.mk > +++ glibc-2.3.1/debian/packages.d/x86_64.mk > @@ -0,0 +1,162 @@ > +# Build 64bit libraries > + > +objdir_64 = $(objdir)_64 > +install_root_64 = $(install_root)_64 > +stamp_install_64 = $(stamp_install)_64 > +stamp_build_64 = $(stamp_build)_64 > +stamp_configure_64 = $(stamp_configure)_64 > +lib64c = lib64c6 > + > +flags_64 = -g0 -O2 -Wall > + > +MYCC = gcc-3.3 -m64 > + > +ifeq ($(log_build),/dev/tty) > + log_build_64 = /dev/tty > +else > + log_build_64 = $(log_build)_64 > +endif > + > +$(stamp_install_64): $(stamp_build_64) > + $(checkroot) > + $(make_directory) $(install_root_64) > + $(MAKE) -C $(objdir_64) install_root=$(install_root_64) install > + touch $@ > + > +$(stamp_build_64): $(stamp_configure_64) > +ifeq ($(NO_LOG),) > + @if [ -s $(log_build_64) ]; then savelog $(log_build_64); fi > +endif > + @echo 'Building GNU C Library for a $(DEB_BUILD_GNU_TYPE) host (64bit).' > + $(MAKE) -C $(objdir_64) PARALLELMFLAGS="$(PARALLELMFLAGS)" 2>&1 | tee > $(log_build_64) > + touch $@ > + > +$(stamp_configure_64): $(stamp_unpack) $(stamp_patch) > + $(make_directory) $(objdir_64) $(stampdir) > + rm -f $(objdir_64)/configparms > + echo "CC = $(MYCC)" >> $(objdir_64)/configparms > + echo "BUILD_CC = $(MYCC)" >> $(objdir_64)/configparms > + echo "CFLAGS = $(flags_64)" >> $(objdir_64)/configparms > + echo "BUILD_CFLAGS = $(flags_64)" >> $(objdir_64)/configparms > + echo "BASH := /bin/bash" >> $(objdir_64)/configparms > + echo "KSH := /bin/bash" >> $(objdir_64)/configparms > + echo "mandir = $(mandir)" >> $(objdir_64)/configparms > + echo "infodir = $(infodir)" >> $(objdir_64)/configparms > + echo "libexecdir = $(libexecdir)" >> $(objdir_64)/configparms > + echo "LIBGD = no" >> $(objdir_64)/configparms > + echo "cross-compiling = yes" >> $(objdir_64)/configparms > + echo > + ln -s $(LINUX_SOURCE)/include/asm-x86_64 $(objdir_64)/asm # Hack > + cd $(objdir_64) && CC="$(MYCC)" CFLAGS="$(flags_64)" \ > + $(srcdir)/configure --host=x86_64-linux \ > + --build=i386-linux --prefix=/usr --without-cvs \ > + --disable-profile --enable-static --enable-kernel=2.4.0 \ "2.4.0" should be "2.4.1". I fixed it to sparc64/s390x. > + --enable-add-ons="$(add-ons)" $(with_headers) > + > + touch $@ > + > +$(lib64c): $(stamp_install_64) debian/control $(mkdir)/sysdeps.mk \ > + debian/libc/DEBIAN/shlibs > + $(checkroot) > + $(debian-clean) > + -rm -rf $(tmpdir)/$@ > + > + $(make_directory) $(tmpdir)/$@/DEBIAN > + $(INSTALL_PROGRAM) debian/lib64c/p* $(tmpdir)/$@/DEBIAN > + cat debian/libc/DEBIAN/shlibs | sed -e 's_$(libc)[EMAIL PROTECTED]' -e \ > + 's_/lib/_/lib64/_' > \ > + $(tmpdir)/$@/DEBIAN/shlibs > + > + $(make_directory) $(tmpdir)/$@/lib64 $(tmpdir)/$@/usr/lib64 > + > + # Compatibility links > + $(make_directory) $(tmpdir)/$@/lib $(tmpdir)/$@/usr/lib > + ln -s ../lib64 $(tmpdir)/$@/lib/64 > + ln -s ../lib64 $(tmpdir)/$@/usr/lib/64 > + ln -s ../lib64/ld-$(VERSION).so $(tmpdir)/$@/lib/ld-linux-x86-64.so.2 > + > + $(INSTALL_DATA) $(install_root_64)/lib64/lib*-$(VERSION).so > $(tmpdir)/$@/lib64/. > + $(INSTALL_PROGRAM) $(install_root_64)/lib64/libc-$(VERSION).so > $(tmpdir)/$@/lib64/. > + $(INSTALL_DATA) $(install_root_64)/lib64/libSegFault.so > $(tmpdir)/$@/lib64/. > +ifeq ($(threads),yes) > + $(INSTALL_DATA) $(install_root_64)/lib64/libpthread-0.10.so > $(tmpdir)/$@/lib64/. > + $(INSTALL_DATA) $(install_root_64)/lib64/libthread_db-1.0.so > $(tmpdir)/$@/lib64/. > +endif > + @set -e; \ > + cd $(install_root_64)/lib64/; \ > + for l in `find . -type l -name 'lib*.so.*'`; \ > + do cp -vdf $$l $(tmpdir)/$@/lib64/.; done > + cd $(tmpdir)/$@ && \ > + $(STRIP) lib64/lib*-$(VERSION).so > +ifeq ($(threads),yes) > + $(STRIP) $(tmpdir)/$@/lib64/libpthread-0.10.so > + $(STRIP) $(tmpdir)/$@/lib64/libthread_db-1.0.so > +endif > + $(INSTALL_PROGRAM) $(install_root_64)/lib64/ld-$(VERSION).so \ > + $(tmpdir)/$@/lib64/. > + #### XXX > + # test -e /lib64/ld-linux.so.2 && \ > + # $(INSTALL_PROGRAM) /lib64/ld-*.so > $(tmpdir)/$@/lib64/ld-$(VERSION).so > + cp -vdf $(install_root_64)/lib64/ld*.so.* \ > + $(tmpdir)/$@/lib64/. > + cp -vfa $(install_root_64)/usr/lib64/gconv \ > + $(tmpdir)/$@/usr/lib64/. > + $(make_directory) $(tmpdir)/[EMAIL PROTECTED](docdir) > + ln -sf $(libc) $(tmpdir)/[EMAIL PROTECTED](docdir)/$@ > + find $(tmpdir)/$@ -name CVS -print -prune | xargs --no-run-if-empty rm > -rf > + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ > + chown -R root.root $(tmpdir)/$@ > + chmod -R go=rX $(tmpdir)/$@ > + dpkg --build $(tmpdir)/$@ .. > + > +$(lib64c)-dev: $(stamp_install_64) debian/control $(mkdir)/sysdeps.mk > + $(checkroot) > + $(debian-clean) > + -rm -rf $(tmpdir)/$@ > + > + $(make_directory) $(tmpdir)/$@/DEBIAN > + > + $(make_directory) $(tmpdir)/[EMAIL PROTECTED](libdir)64 > + $(INSTALL_DATA) $(install_root_64)$(libdir)64/*.o $(tmpdir)/[EMAIL > PROTECTED](libdir)64/. > + $(INSTALL_DATA) $(install_root_64)$(libdir)64/*.a $(tmpdir)/[EMAIL > PROTECTED](libdir)64/. > + rm -f $(tmpdir)/[EMAIL PROTECTED](libdir)64/*_?.a > +ifeq ($(DEB_BUILD_OPTION_STRIP),yes) > +# Don't strip linker scripts. > + @tostrip=; for file in $(tmpdir)/[EMAIL PROTECTED](libdir)64/*; do \ > + case `file $$file` in \ > + *text) ;; *) tostrip="$$tostrip $$file" ;; esac; \ > + done; echo "$(STRIP) -g $$tostrip"; \ > + $(STRIP) -g $$tostrip > +endif > + for f in $(install_root_64)$(libdir)64/lib*.so; do \ > + case "$$f" in \ > + *-$(VERSION).so | *-0.[789].so ) ;; \ > + */libSegFault.so|*/libthread_db.so|*/libdb.so) ;; \ > + *) cp -df $$f $(tmpdir)/[EMAIL PROTECTED](libdir)64/. || exit 1 ;; \ > + esac; \ > + done > + cd $(tmpdir)/[EMAIL PROTECTED](libdir)64; \ > + for link in `find . -name '*.so' -type l`; do \ > + linksrc=$$(readlink $$link | sed 's%../..%%'); \ > + rm -f $$link; ln -sf $$linksrc $$link; done > + > + # IBM zSeries has a 32/64 build setup, make sure we support it ^^^^^^^^^^^ :) > + $(make_directory) $(tmpdir)/[EMAIL PROTECTED](includedir) > + cp -R $(LINUX_SOURCE)/include/asm-x86_64 \ > + $(tmpdir)/[EMAIL PROTECTED](includedir)/. > + # Remove cruft from CVS trees > + find $(tmpdir)/[EMAIL PROTECTED](includedir)/ -name CVS -type d | xargs > -r rm -rf > + find $(tmpdir)/[EMAIL PROTECTED](includedir)/ -name '.#*' -type f | > xargs rm -f > + > + $(make_directory) $(tmpdir)/[EMAIL PROTECTED](docdir)/$@ > + $(INSTALL_DATA) debian/changelog $(tmpdir)/[EMAIL > PROTECTED](docdir)/$@/changelog.Debian > + -find $(tmpdir)/[EMAIL PROTECTED](docdir)/$@ -type f | xargs -r gzip -9f > + $(INSTALL_DATA) debian/copyright $(tmpdir)/[EMAIL > PROTECTED](docdir)/$@/. > + > + # cp -a debian/libc-dev/{postinst,prerm} $(tmpdir)/$@/DEBIAN > + > + find $(tmpdir)/$@ -name CVS -print -prune | xargs --no-run-if-empty rm > -rf > + dpkg-gencontrol -isp -p$@ -P$(tmpdir)/$@ > + chown -R root.root $(tmpdir)/$@ > + chmod -R go=rX $(tmpdir)/$@ > + dpkg --build $(tmpdir)/$@ .. > diff -u glibc-2.3.1/debian/patches/0list glibc-2.3.1/debian/patches/0list > --- glibc-2.3.1/debian/patches/0list > +++ glibc-2.3.1/debian/patches/0list > @@ -58,0 +59,2 @@ > +x86-64-sigcontext.h > +sscanf-gcc3.3 > # the sigcontext.h file distributed with x86-64 break some compiles, > # this solves the problem, but the final solution should be to > # fix bits/sigcontext.h in a way that does not need asm/sigcontext.h > only in patch2: > unchanged: > --- glibc-2.3.1.orig/debian/patches/x86-64-sigcontext.h.dpatch > +++ glibc-2.3.1/debian/patches/x86-64-sigcontext.h.dpatch > @@ -0,0 +1,103 @@ > +#! /bin/sh -e > + > +# All lines beginning with `# DP:' are a description of the patch. > +# DP: Description: fix sigcontext.h header file for x86_64 > +# DP: Author: Arnd Bergmann > +# DP: Upstream status: Not submitted > +# DP: Status Details: > +# DP: Date: 2003-01-21 > + > +if [ $# -ne 2 ]; then > + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" > + exit 1 > +fi > +case "$1" in > + -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;; > + -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;; > + *) > + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" > + exit 1 > +esac > +exit 0 > + > +--- glibc-2.3.1/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h.orig > 2003-01-20 13:15:42.000000000 +0100 > ++++ glibc-2.3.1/sysdeps/unix/sysv/linux/x86_64/bits/sigcontext.h 2003-01-22 > 02:29:49.000000000 +0100 > +@@ -23,8 +23,16 @@ > + # error "Never use <bits/sigcontext.h> directly; include <signal.h> > instead." > + #endif > + > ++#define sigcontext_struct sigcontext > ++ > + #include <bits/wordsize.h> > + > ++#if __WORDSIZE == 32 > ++ > ++#include <asm/sigcontext.h> > ++ > ++#else /* __WORDSIZE == 64 */ > ++ > + struct _fpreg > + { > + unsigned short significand[4]; > +@@ -43,61 +51,6 @@ > + __uint32_t element[4]; > + }; > + > +- > +- > +-#if __WORDSIZE == 32 > +- > +-struct _fpstate > +-{ > +- /* Regular FPU environment. */ > +- __uint32_t cw; > +- __uint32_t sw; > +- __uint32_t tag; > +- __uint32_t ipoff; > +- __uint32_t cssel; > +- __uint32_t dataoff; > +- __uint32_t datasel; > +- struct _fpreg _st[8]; > +- unsigned short status; > +- unsigned short magic; > +- > +- /* FXSR FPU environment. */ > +- __uint32_t _fxsr_env[6]; > +- __uint32_t mxcsr; > +- __uint32_t reserved; > +- struct _fpxreg _fxsr_st[8]; > +- struct _xmmreg _xmm[8]; > +- __uint32_t padding[56]; > +-}; > +- > +-struct sigcontext > +-{ > +- unsigned short gs, __gsh; > +- unsigned short fs, __fsh; > +- unsigned short es, __esh; > +- unsigned short ds, __dsh; > +- unsigned long edi; > +- unsigned long esi; > +- unsigned long ebp; > +- unsigned long esp; > +- unsigned long ebx; > +- unsigned long edx; > +- unsigned long ecx; > +- unsigned long eax; > +- unsigned long trapno; > +- unsigned long err; > +- unsigned long eip; > +- unsigned short cs, __csh; > +- unsigned long eflags; > +- unsigned long esp_at_signal; > +- unsigned short ss, __ssh; > +- struct _fpstate * fpstate; > +- unsigned long oldmask; > +- unsigned long cr2; > +-}; > +- > +-#else /* __WORDSIZE == 64 */ > +- > + struct _fpstate > + { > + /* FPU environment matching the 64-bit FXSAVE layout. */ > only in patch2: > unchanged: > # applicable only until the update to 2.3.2 Are there any plans to send this patch to upstream? And could you describe the detail in the DP: Description field from 0list? > --- glibc-2.3.1.orig/debian/patches/sscanf-gcc3.3.dpatch > +++ glibc-2.3.1/debian/patches/sscanf-gcc3.3.dpatch > @@ -0,0 +1,34 @@ > +#! /bin/sh -e > + > +# All lines beginning with `# DP:' are a description of the patch. > +# DP: Description: fix sscanf.c for compilation with gcc-3.3 > +# DP: Author: Arnd Bergmann > +# DP: Upstream status: already in 2.3.2 > +# DP: Date: 2003-04-22 > + > +if [ $# -ne 2 ]; then > + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" > + exit 1 > +fi > +case "$1" in > + -patch) patch -d "$2" -f --no-backup-if-mismatch -p1 < $0;; > + -unpatch) patch -d "$2" -f --no-backup-if-mismatch -R -p1 < $0;; > + *) > + echo >&2 "`basename $0`: script expects -patch|-unpatch as argument" > + exit 1 > +esac > +exit 0 > + > +--- glibc-2.3.1/stdio-common/sscanf.c 2002-08-10 20:09:08.000000000 > +0200 > ++++ glibc-2.3.1/stdio-common/sscanf.c 2003-04-23 02:55:03.000000000 > +0200 > +@@ -27,9 +27,7 @@ > + /* Read formatted input from S, according to the format string FORMAT. */ > + /* VARARGS2 */ > + int > +-sscanf (s, format) > +- const char *s; > +- const char *format; > ++sscanf (const char *s, const char *format, ...) > + { > + va_list arg; > + int done; This bug is fixed in the next glibc-2.3.2, so this patch can be removed, as you described. Regards, -- gotom

