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

Re: [bunk@fs.tum.de: Bug#210307: ncurses doesn't build on s390]



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 to: