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: