On Wednesday 10 September 2003 22:32, Daniel Jacobowitz wrote:
> Hi folks,
>
> Ncurses now tries to build a 64-bit library.  But it looks like the
> S/390 build daemon can't _run_ 64-bit binaries?  Do I need to make it
> do this as a cross-compile instead?

Yes, that's also what I did in my original approach when doing the
same for amd64. For reference, here is my old patch, which happens
to be very similar to your changes.

Doing a cross-compile will also be necessary when the 64-bit
support is enabled on i386, because the build servers will
remain 32 bit for a long time.

        Arnd <><

diff -urN ncurses-5.3.20021109/debian/control 
ncurses-5.3.20021109-64/debian/control
--- ncurses-5.3.20021109/debian/control 2003-01-22 00:52:33.000000000 +0100
+++ ncurses-5.3.20021109-64/debian/control      2003-01-21 23:00:42.000000000 
+0100
@@ -64,6 +64,14 @@
  .
  This package includes support for wide characters.
 
+Package: libncurses5-64
+Architecture: any
+Section: devel
+Priority: extra
+Depends: libncurses5 (= ${Source-Version})
+Description: 64 bit libraries for ncurses
+ This package contains the 64 bit libraries for ncurses.
+
 Package: ncurses-bin
 Architecture: any
 Section: base
diff -urN ncurses-5.3.20021109/debian/libncurses5-64.dirs 
ncurses-5.3.20021109-64/debian/libncurses5-64.dirs
--- ncurses-5.3.20021109/debian/libncurses5-64.dirs     1970-01-01 
01:00:00.000000000 +0100
+++ ncurses-5.3.20021109-64/debian/libncurses5-64.dirs  2003-01-21 
23:00:42.000000000 +0100
@@ -0,0 +1 @@
+lib64
diff -urN ncurses-5.3.20021109/debian/libncurses5-64.files 
ncurses-5.3.20021109-64/debian/libncurses5-64.files
--- ncurses-5.3.20021109/debian/libncurses5-64.files    1970-01-01 
01:00:00.000000000 +0100
+++ ncurses-5.3.20021109-64/debian/libncurses5-64.files 2003-01-21 
23:00:42.000000000 +0100
@@ -0,0 +1,4 @@
+lib64/libncurses.so.*
+usr/lib64/libpanel.so.*
+usr/lib64/libform.so.*
+usr/lib64/libmenu.so.*
diff -urN ncurses-5.3.20021109/debian/libncurses5-dev.files 
ncurses-5.3.20021109-64/debian/libncurses5-dev.files
--- ncurses-5.3.20021109/debian/libncurses5-dev.files   2003-01-22 
00:52:33.000000000 +0100
+++ ncurses-5.3.20021109-64/debian/libncurses5-dev.files        2003-01-21 
23:00:42.000000000 +0100
@@ -8,4 +8,13 @@
 usr/lib/libform.a
 usr/lib/libmenu.a
 usr/lib/libpanel.a
+usr/lib64/libncurses.so
+usr/lib64/libform.so
+usr/lib64/libmenu.so
+usr/lib64/libpanel.so
+usr/lib64/libncurses.a
+usr/lib64/libncurses++.a
+usr/lib64/libform.a
+usr/lib64/libmenu.a
+usr/lib64/libpanel.a
 usr/share/man/man3
diff -urN ncurses-5.3.20021109/debian/rules ncurses-5.3.20021109-64/debian/rules
--- ncurses-5.3.20021109/debian/rules   2003-01-22 00:52:33.000000000 +0100
+++ ncurses-5.3.20021109-64/debian/rules        2003-01-22 00:53:48.000000000 
+0100
@@ -22,8 +22,14 @@
 package-devw=libncursesw$(soname)-dev
 package-dbg=libncurses$(soname)-dbg
 package-dbgw=libncursesw$(soname)-dbg
+package-64=libncurses$(soname)-64
 package-term=ncurses-term
 
+build64-i386 = yes
+build64-sparc = yes
+build64-s390 = yes
+build64 = $(build64-$(shell dpkg-architecture -qDEB_HOST_ARCH))
+
 workdir=$(shell pwd)
 tempdir=debian/tmp
 fulltempdir=$(workdir)/$(tempdir)
@@ -33,6 +39,7 @@
 wobjdir=$(srcdir)/obj-wide
 objdir-debug=$(srcdir)/obj-debug
 wobjdir-debug=$(srcdir)/obj-wide-debug
+objdir-64=$(srcdir)/obj-64
 
 CFLAGS = -O2 -g
 CONFARGS =     --prefix=/usr \
@@ -82,7 +89,23 @@
                --with-install-prefix=$(fulltempdir) \
                --disable-overwrite --enable-widec
 
-build: build-normal build-wide build-debug build-wide-debug
+$(objdir-64)/config.status: configure build-normal
+       test -d $(objdir-64) || mkdir $(objdir-64)
+       cd $(objdir-64) && CFLAGS="$(CFLAGS) -m64" LDFLAGS="$(LDFLAGS) -m64" \
+               CXXFLAGS="$(CFLAGS) -m64" $(srcdir)/configure \
+               $(CONFARGS) \
+               --with-install-prefix=$(fulltempdir) \
+               --with-build-libs="-L/usr/lib" \
+               --with-build-cflags="$(CFLAGS)" \
+               --with-build-ldflags="$(LDFLAGS)" \
+               --libdir='$${exec_prefix}/lib64' \
+               --host=`dpkg-architecture -qDEB_HOST_GNU_TYPE | \
+                       sed -e 's/i386/x86_64/g' -e 's/s390/s390x/g' \
+                               -e 's/sparc/sparc64/g'` \
+               --build=`dpkg-architecture -qDEB_BUILD_GNU_TYPE` \
+               --enable-overwrite
+
+build: build-normal build-wide build-debug build-wide-debug build-64
 
 build-normal: $(objdir)/config.status
        # For ia64...
@@ -116,6 +139,16 @@
        cd $(wobjdir-debug) && $(MAKE)
        touch $@
 
+build-64: $(objdir-64)/config.status
+ifeq ($(build64), yes)
+       # For ia64...
+       cd $(objdir-64)/c++ \
+         && cat Makefile | sed 's, -c ../c++/demo.cc, -O0 -c ../c++/demo.cc,' 
> Makefile.tem \
+         && mv -f Makefile.tem Makefile
+       cd $(objdir-64) && $(MAKE)
+       touch $@
+endif
+
 clean:
        dh_testdir
        dh_testroot
@@ -124,6 +157,7 @@
        rm -rf $(wobjdir)
        rm -rf $(objdir-debug)
        rm -rf $(wobjdir-debug)
+       rm -rf $(objdir-64)
        rm -f debian/shlibs.local
        dh_clean
 
@@ -146,6 +180,7 @@
        # Install non -DTRACE versions.
        $(MAKE) -C $(objdir) install.libs
        $(MAKE) -C $(wobjdir) install.libs
+       $(MAKE) -C $(objdir-64) install.libs
 
        # Compile this before moving files into their packages.
        
LD_LIBRARY_PATH=$${LD_LIBRARY_PATH}:$(fulltempdir)/usr/lib:$(fulltempdir)/lib \
@@ -156,7 +191,11 @@
        test -d $(tempdir)/lib || mkdir $(tempdir)/lib
        mv $(tempdir)/usr/lib/libncurses.so.$(vername) $(tempdir)/lib/
        mv $(tempdir)/usr/lib/libncurses.so.$(soname) $(tempdir)/lib/
-
+ifeq ($(build64), yes)
+       test -d $(tempdir)/lib64 || mkdir $(tempdir)/lib64
+       mv $(tempdir)/usr/lib64/libncurses.so.$(vername) $(tempdir)/lib64/
+       mv $(tempdir)/usr/lib64/libncurses.so.$(soname) $(tempdir)/lib64/
+endif
        dh_movefiles
 
        # We keep the libncurses shared library in /lib.
@@ -167,6 +206,12 @@
        ln -sf libncurses.so debian/$(package-dev)/usr/lib/libtermcap.so
        ln -sf libncurses.a debian/$(package-dev)/usr/lib/libtermcap.a
        ln -sf libncurses.a debian/$(package-dev)/usr/lib/libcurses.a
+ifeq ($(build64), yes)
+       ln -sf libncurses.so debian/$(package-dev)/usr/lib64/libcurses.so
+       ln -sf libncurses.so debian/$(package-dev)/usr/lib64/libtermcap.so
+       ln -sf libncurses.a debian/$(package-dev)/usr/lib64/libtermcap.a
+       ln -sf libncurses.a debian/$(package-dev)/usr/lib64/libcurses.a
+endif
 
 # Generate new terminfo entries for ncurses-base, move to /etc
        mv debian/$(package-base)/usr/share/terminfo debian/$(package-base)/etc
@@ -212,6 +257,9 @@
        mkdir -p debian/$(package-bin)/usr/share/doc
        mkdir -p debian/$(package-dbg)/usr/share/doc
        mkdir -p debian/$(package-dbgw)/usr/share/doc
+ifeq ($(build64), yes)
+       mkdir -p debian/$(package-64)/usr/share/doc
+endif
        ln -s $(package-lib) \
                debian/$(package-bin)/usr/share/doc/$(package-bin)
        ln -s $(package-dev) \

Reply via email to