[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#274367: glibc: [amd64] New GLIBC pass to create 32bit libc6-i386 and libc6-dev-i386 packages



On Fri, Feb 10, 2006 at 07:39:03AM +0100, Andreas Jochens wrote:
> Hello,
Hi!

> I have some small comments on your patch.
> 
> On 06-Feb-09 19:52, Aurelien Jarno wrote:
> > +# build 32-bit (i386) alternative library
> > +GLIBC_PASSES += i386
> > +DEB_ARCH_REGULAR_PACKAGES += libc6-i386 libc6-dev-i386
> > +libc6-i386_shlib_dep = libc6-i386 (>= $(shlib_dep_ver))
> > +
> > +i386_configure_target = i486-linux
> > +# __i386__ is defined here because Makeconfig uses -undef and the
> > +# /usr/include/asm wrappers need that symbol.
> > +i386_CC = $(CC) -m32 -D__i386__
> > +i386_add-ons = nptl $(add-ons)
> > +i386_extra_cflags = -O3 -fomit-frame-pointer -D__USE_STRING_INLINES
> > +i386_extra_cflags += -g0 -fno-unit-at-a-time
> > +i386_extra_config_options = $(extra_config_options) --with-tls --with-__thread \
> > +	--includedir=/usr/include/i386-linux --prefix=/emul/ia32-linux/usr 
> 
> I think that 'i386_extra_cflags' should just be set to '-O3 -g1'. The
> other flags were used to circumvent some compilation problems that
> were solved with gcc-4.0.

Ok, changed.

> Also 'i386_extra_config_options' does not need to have '--with-tls'
> and '--with-__thread' specified explicitly because the new glibc
> version 2.3.5 uses these options by default.

Also changed.

> The '--includedir=/usr/include/i386-linux' is also no longer necessary
> because this is handled automagically by the wrappers in 
> linux-kernel-headers.

This is not the include path of the kernel headers, but the place were
to install the glibc headers. Look at i386.mk or hppa.mk.

Not that I have changed this directory to /usr/include/i386-linux-gnu,
to be consistent with hppa and i386.

> I also do not have the '-D__i386__' in my own (/usr/lib32 based)
> amd64 glibc patch and it compiles and works fine. So I am not sure
> if that definition is still necessary.

This comes from i386.mk that I used as a base for amd64.mk. I have
successfully rebuilt it without this part, so I have removed it from my
patch.

Please find attached a new patch, that uses /lib32 and /usr/lib32. There
is a lot of difference from the previous patch, so don't hesitate to
comment it. I know there is a missing conflicts with the current version
of ia32-libs, I am currently looking for a way to do it cleanly.

Aurelien

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net
diff -u glibc-2.3.6/debian/rules.d/control.mk glibc-2.3.6/debian/rules.d/control.mk
--- glibc-2.3.6/debian/rules.d/control.mk
+++ glibc-2.3.6/debian/rules.d/control.mk
@@ -23,6 +23,7 @@
 	cat debian/control.in/libc6.1		>> $@T
 	cat debian/control.in/libc0.3		>> $@T
 	cat debian/control.in/libc1		>> $@T
+	cat debian/control.in/i386		>> $@T
 	cat debian/control.in/sparc64		>> $@T
 	cat debian/control.in/s390x		>> $@T
 	cat debian/control.in/amd64		>> $@T
diff -u glibc-2.3.6/debian/rules.d/debhelper.mk glibc-2.3.6/debian/rules.d/debhelper.mk
--- glibc-2.3.6/debian/rules.d/debhelper.mk
+++ glibc-2.3.6/debian/rules.d/debhelper.mk
@@ -193,7 +193,7 @@
 	  destdir=$$1; \
 	  shift; \
 	  z=debian/$(libc)-$$x.install; \
-	  if test $$destdir = 64; then \
+	  if test $$destdir = 32 -o $$destdir = 64; then \
 	    cp debian/debhelper.in/libc-alt.install $$z; \
 	    zd=debian/$(libc)-dev-$$x.install; \
 	    cp debian/debhelper.in/libc-alt-dev.install $$zd; \
diff -u glibc-2.3.6/debian/sysdeps/amd64.mk glibc-2.3.6/debian/sysdeps/amd64.mk
--- glibc-2.3.6/debian/sysdeps/amd64.mk
+++ glibc-2.3.6/debian/sysdeps/amd64.mk
@@ -20,0 +21,23 @@
+
+# build 32-bit (i386) alternative library
+GLIBC_PASSES += i386
+DEB_ARCH_REGULAR_PACKAGES += libc6-i386 libc6-dev-i386
+libc6-i386_shlib_dep = libc6-i386 (>= $(shlib_dep_ver))
+
+i386_configure_target = i486-linux
+i386_CC = $(CC) -m32
+i386_add-ons = nptl $(add-ons)
+i386_extra_cflags = -march=pentium4 -g1 -O3
+i386_extra_config_options = $(extra_config_options) --includedir=/usr/include/i386-linux-gnu
+i386_LIBDIR = 32
+i386_MIN_KERNEL_SUPPORTED = 2.6.0
+
+define libc6-dev-i386_extra_pkg_install
+dh_install -plibc6-dev-i386 debian/tmp-i386/usr/include/i386-linux-gnu \
+        usr/include
+endef
+
+define libc6-i386_extra_pkg_install
+mkdir -p debian/libc6-i386/lib
+ln -s /lib32/ld-linux.so.2 debian/libc6-i386/lib
+endef
diff -u glibc-2.3.6/debian/patches/series glibc-2.3.6/debian/patches/series
--- glibc-2.3.6/debian/patches/series
+++ glibc-2.3.6/debian/patches/series
@@ -120,0 +121 @@
+amd64-i386-biarch.diff
diff -u glibc-2.3.6/debian/control.in/main glibc-2.3.6/debian/control.in/main
--- glibc-2.3.6/debian/control.in/main
+++ glibc-2.3.6/debian/control.in/main
@@ -1,7 +1,7 @@
 Source: @glibc@
 Section: libs
 Priority: required
-Build-Depends: gettext (>= 0.10.37-1), make (>= 3.80-1), dpkg-dev (>= 1.13.5), debianutils (>= 1.13.1), tar (>= 1.13.11), bzip2, texinfo (>= 4.0), linux-kernel-headers (>= 2.6.13+0rc3-2) [!hurd-i386], mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 20020608-1) [hurd-i386], gnumach-dev [hurd-i386], texi2html, file, gcc-4.0 [!powerpc !m68k !hppa !hurd-i386], gcc-3.4 (>= 3.4.4-6) [powerpc], gcc-3.4 [m68k hppa], gcc-3.3 [hurd-i386], autoconf, binutils (>= 2.16.1cvs20051109-1), sed (>= 4.0.5-4), gawk, debhelper (>= 4.1.76), libc6-dev-amd64 [i386], libc6-dev-ppc64 [powerpc], quilt
+Build-Depends: gettext (>= 0.10.37-1), make (>= 3.80-1), dpkg-dev (>= 1.13.5), debianutils (>= 1.13.1), tar (>= 1.13.11), bzip2, texinfo (>= 4.0), linux-kernel-headers (>= 2.6.13+0rc3-2) [!hurd-i386], mig (>= 1.3-2) [hurd-i386], hurd-dev (>= 20020608-1) [hurd-i386], gnumach-dev [hurd-i386], texi2html, file, gcc-4.0 [!powerpc !m68k !hppa !hurd-i386], gcc-3.4 (>= 3.4.4-6) [powerpc], gcc-3.4 [m68k hppa], gcc-3.3 [hurd-i386], autoconf, binutils (>= 2.16.1cvs20051109-1), sed (>= 4.0.5-4), gawk, debhelper (>= 4.1.76), libc6-dev-amd64 [i386], libc6-dev-ppc64 [powerpc], libc6-dev-i386 [amd64] | ia32-libs-dev [amd64], quilt
 Build-Depends-Indep: perl, po-debconf, po4a
 Maintainer: GNU Libc Maintainers <debian-glibc@lists.debian.org>
 Uploaders: Ben Collins <bcollins@debian.org>, GOTO Masanori <gotom@debian.org>, Philip Blundell <pb@nexus.co.uk>, Jeff Bailey <jbailey@raspberryginger.com>, Daniel Jacobowitz <dan@debian.org>, Clint Adams <schizo@debian.org>, Denis Barbier <barbier@debian.org>
only in patch2:
unchanged:
--- glibc-2.3.6.orig/debian/patches/amd64-i386-biarch.diff
+++ glibc-2.3.6/debian/patches/amd64-i386-biarch.diff
@@ -0,0 +1,16 @@
+--- glibc-2.3.6.orig/sysdeps/unix/sysv/linux/x86_64/dl-cache.h	2006-02-10 07:50:41.000000000 +0100
++++ glibc-2.3.6/sysdeps/unix/sysv/linux/x86_64/dl-cache.h	2006-02-10 07:50:56.000000000 +0100
+@@ -22,4 +22,4 @@
+ #define _dl_cache_check_flags(flags)			\
+   ((flags) == _DL_CACHE_DEFAULT_ID)
+ 
+-#include <sysdeps/unix/sysv/linux/sparc/dl-cache.h>
++#include <sysdeps/unix/sysv/linux/mips/dl-cache.h>
+--- glibc-2.3.6.orig/sysdeps/unix/sysv/linux/mips/dl-cache.h	2006-02-10 07:33:28.054067544 +0000
++++ glibc-2.3.6/sysdeps/unix/sysv/linux/mips/dl-cache.h	2006-02-10 07:34:15.056024278 +0000
+@@ -40,4 +40,4 @@
+ 	}							\
+     } while (0)
+ 
+-#include_next <dl-cache.h>
++#include <sysdeps/generic/dl-cache.h>

Reply to: