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

Re: Binutils release imminent (FYI)



Christopher C Chimelis writes:
 > Unfortunately, I won't be able to upload the i386 binary deb, but it
 > should be happy with the autobuilders everywhere.

I tried to build on i386 (builds ok) and found some things:

- binutils is built for i486, not i386. Is this a problem?
  I tried to use dpkg-architecture; it does work on i386-linux,
  but binutils-multiarch is configured for i486-linux (not
  i386-linux). And dpkg-architcture does not seem to know sparc64.
  Is the i486-mingw32 a leftover?

- the doc -> share/doc links are missing

- still using 80cols for remote editing, so I introduced some vars
  and shortened the rules file.

Patches are appended, but please handle the dpkg
-print-gnu-build-architecture --> dpkg-architecture change with care.

The gcc-2.95-0pre2 in Incoming is built with the old binutils.


diff -r -u binutils-2.9.5.0.12-old/debian/binutils-dev.postinst binutils-2.9.5.0.12/debian/binutils-dev.postinst
--- binutils-2.9.5.0.12-old/debian/binutils-dev.postinst	Tue Sep 21 00:53:33 1999
+++ binutils-2.9.5.0.12/debian/binutils-dev.postinst	Tue Sep 21 00:30:39 1999
@@ -3,5 +3,6 @@
 set -e
 
 install-info --quiet --section "Development" "Development" \
- /usr/share/info/bfd.info.gz
+  /usr/share/info/bfd.info.gz
 
+#DEBHELPER#
diff -r -u binutils-2.9.5.0.12-old/debian/binutils-dev.prerm binutils-2.9.5.0.12/debian/binutils-dev.prerm
--- binutils-2.9.5.0.12-old/debian/binutils-dev.prerm	Tue Sep 21 00:53:33 1999
+++ binutils-2.9.5.0.12/debian/binutils-dev.prerm	Tue Sep 21 00:30:56 1999
@@ -4,3 +4,4 @@
 
 install-info --quiet --remove bfd
 
+#DEBHELPER#
diff -r -u binutils-2.9.5.0.12-old/debian/binutils-multiarch.postinst binutils-2.9.5.0.12/debian/binutils-multiarch.postinst
--- binutils-2.9.5.0.12-old/debian/binutils-multiarch.postinst	Tue Sep 21 00:53:33 1999
+++ binutils-2.9.5.0.12/debian/binutils-multiarch.postinst	Tue Sep 21 00:31:32 1999
@@ -1,3 +1,9 @@
 #! /bin/sh
 set -e
-ldconfig
+
+case "$1" in
+    configure)
+	ldconfig
+esac
+
+#DEBHELPER#
Only in binutils-2.9.5.0.12/debian: binutils-multiarch.prerm
diff -r -u binutils-2.9.5.0.12-old/debian/postinst binutils-2.9.5.0.12/debian/postinst
--- binutils-2.9.5.0.12-old/debian/postinst	Tue Sep 21 00:53:33 1999
+++ binutils-2.9.5.0.12/debian/postinst	Tue Sep 21 00:32:44 1999
@@ -13,5 +13,9 @@
 install-info --quiet --section "Development" "Development" \
  /usr/share/info/ld.info.gz
 
-ldconfig
+case "$1" in
+    configure)
+	ldconfig
+esac
 
+#DEBHELPER#
diff -r -u binutils-2.9.5.0.12-old/debian/prerm binutils-2.9.5.0.12/debian/prerm
--- binutils-2.9.5.0.12-old/debian/prerm	Tue Sep 21 00:53:33 1999
+++ binutils-2.9.5.0.12/debian/prerm	Tue Sep 21 00:32:57 1999
@@ -8,3 +8,4 @@
 install-info --quiet --remove gprof
 install-info --quiet --remove ld
 
+#DEBHELPER#
diff -r -u binutils-2.9.5.0.12-old/debian/rules binutils-2.9.5.0.12/debian/rules
--- binutils-2.9.5.0.12-old/debian/rules	Tue Sep 21 00:53:33 1999
+++ binutils-2.9.5.0.12/debian/rules	Tue Sep 21 00:51:01 1999
@@ -1,198 +1,204 @@
 #!/usr/bin/make -f
 # Build rules for GNU binutils (2.9.1.0.x)
 
-SHELL=bash
-
-package=binutils
+SHELL=/bin/bash
 
+p_bin	= binutils
+p_dev	= $(p_bin)-dev
+p_mul	= $(p_bin)-multiarch
+
+pwd	:= $(shell pwd)
+d	= debian/tmp
+d_bin	= $(d)
+d_dev	= debian/$(p_dev)
+d_mul	= debian/$(p_mul)
 
 CFLAGS = -O2 
 LDFLAGS = -s
 
-ARCH = $(shell dpkg --print-gnu-build-architecture)
+DEB_HOST_ARCH		:= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_HOST_GNU_TYPE	:= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+
 VERSION = $(shell sed -n 's/^VERSION=\(.*\)/\1/p' bfd/configure)
 MULTI_VERSION = $(VERSION)-multiarch
 MULTI_ARGS = MAKEOVERRIDES="VERSION=$(MULTI_VERSION)"
 
-CONFARGS = --enable-shared --prefix=/usr $(ARCH)-linux
+CONFARGS = --enable-shared --prefix=/usr $(DEB_HOST_GNU_TYPE)
 CC = gcc
 
-ifeq ($(ARCH),sparc)
+ifeq ($(DEB_HOST_ARCH),sparc)
 	CONFARGS += --enable-targets=sparc64-linux
 endif
-ifeq ($(ARCH),sparc64)
+ifeq ($(DEB_HOST_ARCH),sparc64)
 	CONFARGS += --enable-targets=sparc-linux
 endif
 
-build-single:
+configure-single-stamp:
 	dh_testdir
-	if [ ! -d builddir-single ]; then mkdir builddir-single; fi
-ifeq ($(ARCH),sparc)
+	rm -rf configure-single-stamp builddir-single
+	mkdir builddir-single
+ifeq ($(DEB_HOST_ARCH),sparc)
 	echo "LIB_PATH=/lib/64:/usr/lib/64" >> ld/emulparams/elf64_sparc.sh
 endif
-ifeq ($(ARCH),sparc64)
+ifeq ($(DEB_HOST_ARCH),sparc64)
 	echo "LIB_PATH=/lib/32:/usr/lib/32" >> ld/emulparams/elf32_sparc.sh
 endif
-	cd builddir-single && if [ ! -f Makefile ]; then \
-	env CC=$(CC) ../configure $(CONFARGS); fi
-	(cd builddir-single; \
-	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)")
-	touch build-single
-
-build-multi:
-	dh_testdir
-	if [ ! -d builddir-multi ]; then mkdir builddir-multi; fi
-	cd builddir-multi && if [ ! -f Makefile ]; then \
-	env CC=$(CC) ../configure $(CONFARGS) --enable-targets=alpha-linux,i486-linux,m68k-linux,powerpc-linux,sparc-linux,arm-linux,sparc64-linux,i486-mingw32; \
-	fi
-	(cd builddir-multi; \
-	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" $(MULTI_ARGS))
-	touch build-multi
+	cd builddir-single && env CC="$(CC)" ../configure $(CONFARGS)
+	touch configure-single-stamp
+
+build-single-stamp: configure-single-stamp
+	dh_testdir
+	$(MAKE) -C builddir-single CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
+	touch build-single-stamp
+
+configure-multi-stamp:
+	dh_testdir
+	rm -rf configure-multi-stamp builddir-multi
+	mkdir builddir-multi
+	cd builddir-multi \
+	    && env CC="$(CC)" ../configure $(CONFARGS) \
+		--enable-targets=alpha-linux,i486-linux,m68k-linux,powerpc-linux,sparc-linux,arm-linux,sparc64-linux,i486-mingw32
+	touch configure-multi-stamp
 
-build: build-single build-multi
-	touch build
+build-multi-stamp: configure-multi-stamp
+	dh_testdir
+	$(MAKE) -C builddir-multi \
+		CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" $(MULTI_ARGS)
+	touch build-multi-stamp
+
+build: build-stamp
+build-stamp: build-single-stamp build-multi-stamp
+	touch build-stamp
 
 clean:
 	dh_testdir
-	-rm -rf build-multi build-single builddir-single builddir-multi build
-	-rm -rf debian/files* debian/substvars* 
-ifeq ($(ARCH),sparc)
+	rm -f *-stamp
+	rm -rf builddir-single builddir-multi
+ifeq ($(DEB_HOST_ARCH),sparc)
 	grep -v LIB_PATH ld/emulparams/elf64_sparc.sh > elf64_sparc.sh.tmp
 	rm -f ld/emulparams/elf64_sparc.sh
 	mv elf64_sparc.sh.tmp ld/emulparams/elf64_sparc.sh
 endif
-ifeq ($(ARCH),sparc64)
+ifeq ($(DEB_HOST_ARCH),sparc64)
 	grep -v LIB_PATH ld/emulparams/elf32_sparc.sh > elf32_sparc.sh.tmp
 	rm -f ld/emulparams/elf32_sparc.sh
 	mv elf32_sparc.sh.tmp ld/emulparams/elf32_sparc.sh
 endif
-	dh_clean -a
+	dh_clean
 
-binary-indep:   checkroot build
+binary-indep: build-stamp
 	dh_testdir
 
-binary-arch:    checkroot build
+binary-arch: build-stamp
 	dh_testdir
-	
+	dh_testroot
+	dh_testversion 2.0.50
+
 	dh_clean -a
 	dh_installdirs -a
 
-	ln -s binutils debian/binutils-dev/usr/share/doc/binutils-dev
-	ln -s binutils debian/binutils-multiarch/usr/share/doc/binutils-multiarch
+	ln -s binutils $(d_dev)/usr/share/doc/$(p_dev)
+	ln -s binutils $(d_mul)/usr/share/doc/$(p_mul)
 
-	# install binutils and -dev stuff
-	(cd builddir-single && \
-	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
-		prefix=`pwd`/../debian/tmp/usr mandir=`pwd`/../debian/tmp/usr/share/man install )
-
-	(cd builddir-single && \
-	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
-		prefix=`pwd`/../debian/tmp/usr mandir=`pwd`/../debian/tmp/usr/share/man \
-		infodir=`pwd`/../debian/tmp/usr/share/info install-info )
-
-	# now install binutils-multiarch stuff
-	(cd builddir-multi && \
-	$(MAKE) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" $(MULTI_ARGS) \
-		prefix=`pwd`/../debian/binutils-multiarch/usr mandir=`pwd`/../debian/tmp/usr/share/man \
-		infodir=`pwd`/../debian/tmp/usr/share/info install )
-
-	# We don't need to distribute everything in binutils and -dev
-	rm -rf debian/tmp/usr/include/obstack.h
-	rm -f debian/tmp/usr/man/man1/configure.1
-	rm -f debian/tmp/usr/info/cfg-paper.*
-	rm -f debian/tmp/usr/info/configure.*
-	rm -f debian/tmp/usr/info/standards.*
-
-	# Now get rid of just about everything in binutils-multiarch
-	rm -rf debian/binutils-multiarch/usr/man
-	rm -rf debian/binutils-multiarch/usr/info
-	rm -rf debian/binutils-multiarch/usr/include
-	
-	# Get rid of as and gasp since they don't work right multi
-	rm -f debian/binutils-multiarch/usr/bin/{as,gasp,c++filt}
+	: # install binutils and -dev stuff
+	$(MAKE) -C builddir-single CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
+		prefix=$(pwd)/$(d)/usr mandir=$(pwd)/$(d)/usr/share/man install
+
+	$(MAKE) -C builddir-single CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
+		prefix=$(pwd)/$(d)/usr mandir=$(pwd)/$(d)/usr/share/man \
+		infodir=$(pwd)/$(d)/usr/share/info install-info
+
+	: # now install binutils-multiarch stuff
+	$(MAKE) -C builddir-multi CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" \
+		$(MULTI_ARGS) \
+		prefix=$(pwd)/$(d_mul)/usr mandir=$(pwd)/$(d)/usr/share/man \
+		infodir=$(pwd)/$(d)/usr/share/info install
+
+	: # We don't need to distribute everything in binutils and -dev
+	rm -rf $(d)/usr/include/obstack.h
+	rm -f $(d)/usr/man/man1/configure.1
+	rm -f $(d)/usr/info/{cfg-paper,configure,standards}.*
 
-	# Split out binutils-dev
+	: # Now get rid of just about everything in binutils-multiarch
+	rm -rf $(d_mul)/usr/{man,info,include}
+
+	: # Get rid of as and gasp since they don't work right multi
+	rm -f $(d_mul)/usr/bin/{as,gasp,c++filt}
+
+	: # Split out binutils-dev
 	dh_movefiles -pbinutils-dev
 
-	rm -f debian/binutils-multiarch/usr/lib/{libbfd,libopcodes}.so
-	rm -f debian/binutils-multiarch/usr/lib/*.la
-	rm -f debian/binutils-multiarch/usr/lib/libiberty*
-
-	# We can strip shared libraries
-	strip --strip-unneeded debian/tmp/usr/lib/libbfd-*so
-	strip --strip-unneeded debian/tmp/usr/lib/libopcodes-*so
-	strip --strip-unneeded debian/binutils-multiarch/usr/lib/libbfd-*so
-	strip --strip-unneeded debian/binutils-multiarch/usr/lib/libopcodes-*so
-
-	# Don't want /usr/arch-linux to exist in any package
-	rm -rf debian/tmp/usr/$(ARCH)-linux
-	rm -rf debian/binutils-multiarch/usr/$(ARCH)-linux
-
-	# remove linker scripts in native package from multi-arch package to
-	# avoid (useless) diversions
-	set -e; for f in debian/tmp/usr/lib/ldscripts/*; do \
-		rm -f debian/binutils-multiarch/usr/lib/ldscripts/`basename $$f`; \
+	rm -f $(d_mul)/usr/lib/{libbfd,libopcodes}.so
+	rm -f $(d_mul)/usr/lib/*.la
+	rm -f $(d_mul)/usr/lib/libiberty*
+
+	: # We can strip shared libraries
+	strip --strip-unneeded $(d)/usr/lib/libbfd-*so
+	strip --strip-unneeded $(d)/usr/lib/libopcodes-*so
+	strip --strip-unneeded $(d_mul)/usr/lib/libbfd-*so
+	strip --strip-unneeded $(d_mul)/usr/lib/libopcodes-*so
+
+	: # Don't want /usr/arch-linux to exist in any package
+	rm -rf $(d)/usr/$(DEB_HOST_GNU_TYPE)
+	rm -rf $(d_mul)/usr/$(DEB_HOST_GNU_TYPE)
+
+	: # remove linker scripts in native package from multi-arch package to
+	: # avoid (useless) diversions
+	set -e; for f in $(d)/usr/lib/ldscripts/*; do \
+		rm -f $(d_mul)/usr/lib/ldscripts/`basename $$f`; \
 	done
 
-	# There's no manpage for gasp yet
-	#dh_undocumented gasp.1
-	#ln -s ../man7/undocumented.7.gz debian/tmp/usr/share/man/man1/gasp.1.gz
-	#ln -s ../man7/undocumented.7.gz debian/tmp/usr/share/man/man1/readelf.1.gz
-
-	# Copy new manpages to the main binutils package
-	cp debian/{gasp.1,readelf.1} debian/tmp/usr/share/man/man1
-
-	# install docs
-	#dh_installdocs -pbinutils
-	cp debian/{changelog,copyright} debian/tmp/usr/share/doc/$(package)/
-	cp {ChangeLog,ChangeLog.linux} debian/tmp/usr/share/doc/$(package)/
+#	: # There's no manpage for gasp yet
+#	dh_undocumented gasp.1
+#	ln -s ../man7/undocumented.7.gz $(d)/usr/share/man/man1/gasp.1.gz
+#	ln -s ../man7/undocumented.7.gz $(d)/usr/share/man/man1/readelf.1.gz
+
+	: # Copy new manpages to the main binutils package
+	cp debian/{gasp.1,readelf.1} $(d)/usr/share/man/man1
+
+	: # install docs
+#	dh_installdocs -pbinutils
+	cp debian/{changelog,copyright} $(d)/usr/share/doc/$(p_bin)/
+	cp {ChangeLog,ChangeLog.linux} $(d)/usr/share/doc/$(p_bin)/
 
-	# Now install docs that dh_installdocs makes it harder to do
-	cp debian/changelog debian/tmp/usr/share/doc/$(package)/changelog.Debian
+	: # Now install docs that dh_installdocs makes it harder to do
+	cp debian/changelog $(d)/usr/share/doc/$(p_bin)/changelog.Debian
 
 	cp bfd/{ChangeLog,ChangeLog.linux,PORTING,TODO} \
-	debian/tmp/usr/share/doc/$(package)/bfd/.
-
+		$(d)/usr/share/doc/$(p_bin)/bfd/.
 	cp gas/{ChangeLog,ChangeLog.linux,NEWS} \
-	debian/tmp/usr/share/doc/$(package)/gas/.
-
+		$(d)/usr/share/doc/$(p_bin)/gas/.
 	cp gprof/{ChangeLog,ChangeLog.linux,NOTES,TEST,TODO} \
-	debian/tmp/usr/share/doc/$(package)/gprof/.
-
+		$(d)/usr/share/doc/$(p_bin)/gprof/.
 	cp ld/{ChangeLog,ChangeLog.linux,NEWS,TODO} \
-	debian/tmp/usr/share/doc/$(package)/ld/.
+		$(d)/usr/share/doc/$(p_bin)/ld/.
 
-	# Make links to .so files for multiarch
-#	ln -s libbfd-$(VERSION)-multiarch.so.0.0.0 debian/binutils-multiarch/usr/lib/libbfd-$(VERSION)-multiarch.so
-#	ln -s libopcodes-$(VERSION)-multiarch.so.0.0.0 debian/binutils-multiarch/usr/lib/libopcodes-$(VERSION)-multiarch.so
+	: # Make links to .so files for multiarch
+#	ln -s libbfd-$(VERSION)-multiarch.so.0.0.0 \
+#		$(d_mul)/usr/lib/libbfd-$(VERSION)-multiarch.so
+#	ln -s libopcodes-$(VERSION)-multiarch.so.0.0.0 \
+#		$(d_mul)/usr/lib/libopcodes-$(VERSION)-multiarch.so
 
-	# Compress stuff that needs it
+	: # Compress stuff that needs it
 	dh_compress -a
 
-	# Finish it all up
+	: # Finish it all up
 	dh_fixperms -a
 	dh_installdeb -a
 	dh_shlibdeps -a
-	dh_gencontrol -a
 	dh_makeshlibs -a
+	dh_gencontrol -a
 	dh_md5sums -a
 	dh_builddeb -a
 
-define checkdir
-	test -f binutils/ar.c -a -f debian/rules
-endef
-
 # Below here is fairly generic really
 
-binary:         binary-indep binary-arch
+binary: binary-indep binary-arch
 
 source diff:
 	@echo >&2 'source and diff are obsolete - use dpkg-source -b'; false
 
-checkroot:
-	dh_testroot
-
-.PHONY: binary binary-arch binary-indep clean checkroot
+.PHONY: binary binary-arch binary-indep clean
 
 
 


Reply to: