Hi,

Here is an updated set of patches.

I haven't tested with schroot on amd64, nor to boot a real alpha workstation
- and I'm afraid it won't happen very soon.

I hope it will help nevertheless !

Regards,
JH Chatenet
diff -Naur a/aboot-1.0~pre20200212/debian/control b/aboot-1.0~pre20200212/debian/control
--- a/aboot-1.0~pre20200212/debian/control	2020-03-07 12:12:15.000000000 +0100
+++ b/aboot-1.0~pre20200212/debian/control	2024-10-18 18:00:00.000000000 +0200
@@ -4,6 +4,7 @@
 Priority: standard
 Maintainer: John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de>
 Standards-Version: 3.9.3
+Rules-Requires-Root: no
 Vcs-Browser: https://salsa.debian.org/debian/aboot
 Vcs-Git: https://salsa.debian.org/debian/aboot.git
 
diff -Naur a/aboot-1.0~pre20200212/debian/rules b/aboot-1.0~pre20200212/debian/rules
--- a/aboot-1.0~pre20200212/debian/rules	2020-03-07 12:10:21.000000000 +0100
+++ b/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:02.000000000 +0200
@@ -51,6 +51,7 @@
 	$(MAKE) -C doc/man/de clean
 	$(MAKE) -C doc/faq clean
 	$(MAKE) -C srmbootfat clean
+	rm -f doc/man/de/*.de.[1,5,8]
 
 override_dh_auto_install:
 ifeq (alpha,$(DEB_HOST_GNU_CPU))
Description: 'dpkg-buildpackage -A' should not build package 'aboot-cross'
 aboot-cross was always built on non alpha architectures

diff -Naur a/aboot-1.0~pre20200212/debian/rules b/aboot-1.0~pre20200212/debian/rules
--- a/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:02.000000000 +0200
+++ b/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:03.000000000 +0200
@@ -15,7 +15,7 @@
 ifeq (alpha,$(DEB_HOST_GNU_CPU))
 	export DH_OPTIONS=-Naboot-cross
 else
-	export DH_OPTIONS=-paboot-cross
+#	export DH_OPTIONS=-paboot-cross
 endif
 
 ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
@@ -38,12 +38,14 @@
 	$(MAKE) -C doc/faq
 endif
 else
+ifneq (,$(filter aboot-cross, $(shell dh_listpackages)))
 	$(MAKE) -C tools $(TESTING) isomarkboot CC=$(CC) $(shell dpkg-buildflags --export=configure)
 	$(MAKE) -C srmbootfat srmbootfat srmbootfat.1 CC=$(CC) $(shell dpkg-buildflags --export=configure)
 	$(MAKE) -C doc/man
 	$(MAKE) -C doc/man/de
 	rename 's/([a-z]*).([1,5,8])/\1.de.\2/' doc/man/de/*.[1,5,8]
 endif
+endif
 
 override_dh_auto_clean:
 	$(MAKE) distclean
@@ -67,9 +69,11 @@
 	rm -rf debian/aboot/usr/share/man/man1
 endif
 else
+ifneq (,$(filter aboot-cross, $(shell dh_listpackages)))
 	install -m 755 tools/isomarkboot debian/aboot-cross/usr/bin
 	install -m 755 srmbootfat/srmbootfat debian/aboot-cross/usr/bin
 endif
+endif
 ifneq (,$(filter aboot-base, $(shell dh_listpackages)))
 	install -m 644 bootlx debian/aboot-base/boot/bootlx
 	install -m 644 net_aboot.nh debian/aboot-base/boot/
diff -Naur a/aboot-1.0~pre20200212/debian/rules b/aboot-1.0~pre20200212/debian/rules
--- a/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:03.000000000 +0200
+++ b/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:04.000000000 +0200
@@ -35,7 +35,6 @@
 	$(MAKE) -C srmbootfat all CC=$(CC) $(shell dpkg-buildflags --export=configure)
 ifneq (,$(filter aboot-base, $(shell dh_listpackages)))
 	$(MAKE) $(TESTING) bootlx net_aboot.nh net_pad CC=$(CC) $(shell dpkg-buildflags --export=configure)
-	$(MAKE) -C doc/faq
 endif
 else
 ifneq (,$(filter aboot-cross, $(shell dh_listpackages)))
@@ -46,6 +45,9 @@
 	rename 's/([a-z]*).([1,5,8])/\1.de.\2/' doc/man/de/*.[1,5,8]
 endif
 endif
+ifneq (,$(filter aboot-base, $(shell dh_listpackages)))
+	$(MAKE) -C doc/faq
+endif
 
 override_dh_auto_clean:
 	$(MAKE) distclean
Description: cross-compilation support with gcc-alpha-linux-gnu
 The source package now depends on gcc-alpha-linux-gnu on arch !alpha
 .
 Three (possibly different) compilers are needed :
 1. a native one to compile helpers which run during the build
 2. one to generate Alpha code to build aboot-base (and possibly aboot)
 3. one to generate $DEB_HOST_ARCH code to build aboot-cross
 debian/rules sets variables for each.

diff -Naur a/aboot-1.0~pre20200212/debian/control b/aboot-1.0~pre20200212/debian/control
--- a/aboot-1.0~pre20200212/debian/control	2020-03-07 12:12:15.000000000 +0100
+++ b/aboot-1.0~pre20200212/debian/control	2024-10-18 20:00:05.000000000 +0200
@@ -1,5 +1,6 @@
 Source: aboot
 Build-Depends: debhelper (>= 9), docbook-utils, libext2fs-dev [alpha], rename
+Build-Depends-Indep: gcc-alpha-linux-gnu [!alpha], libc6.1-dev-alpha-cross [!alpha]
 Section: admin
 Priority: standard
 Maintainer: John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de>
diff -Naur a/aboot-1.0~pre20200212/debian/rules b/aboot-1.0~pre20200212/debian/rules
--- a/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:04.000000000 +0200
+++ b/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:05.000000000 +0200
@@ -1,15 +1,46 @@
 #!/usr/bin/make -f
 
+-include /usr/share/dpkg/buildtools.mk
+
 DEB_HOST_GNU_CPU  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_CPU)
 DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
 DEB_BUILD_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+DEB_BUILD_ARCH  ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
 
 export DEB_CPPFLAGS_MAINT_APPEND = -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
 export DEB_CFLAGS_MAINT_APPEND = -Wall
 
-CC ?= gcc
-ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE))
-	CC = $(DEB_HOST_GNU_TYPE)-$(CC)
+# CC to compile aboot-cross - already set by buildtools.mk if present
+ifeq (,$(CC_FOR_BUILD))
+ifneq ($(DEB_HOST_GNU_TYPE),$(DEB_BUILD_GNU_TYPE)) # We are cross-compiling
+	CC = $(DEB_HOST_GNU_TYPE)-gcc
+else
+	CC ?= gcc
+endif
+endif
+
+# CC_ALPHA to compile aboot-base and aboot
+ifeq (alpha-linux-gnu,$(DEB_BUILD_GNU_TYPE))
+ifneq (,$(CC_FOR_BUILD))
+	CC_ALPHA ?= $(CC_FOR_BUILD)
+	LD_ALPHA ?= $(LD_FOR_BUILD)
+	STRIP_ALPHA ?= $(STRIP_FOR_BUILD)
+else
+	CC_ALPHA ?= gcc
+	LD_ALPHA ?= ld
+	STRIP_ALPHA ?= strip
+endif
+else
+	CC_ALPHA ?= alpha-linux-gnu-gcc
+	LD_ALPHA ?= alpha-linux-gnu-ld
+	STRIP_ALPHA ?= alpha-linux-gnu-strip
+endif
+
+# CC_NATIVE to compile helpers which run during the build
+ifneq (,$(CC_FOR_BUILD))
+	CC_NATIVE ?= $(CC_FOR_BUILD)
+else
+	CC_NATIVE ?= gcc
 endif
 
 ifeq (alpha,$(DEB_HOST_GNU_CPU))
diff -Naur a/aboot-1.0~pre20200212/debian/control b/aboot-1.0~pre20200212/debian/control
--- a/aboot-1.0~pre20200212/debian/control	2024-10-18 20:00:05.000000000 +0200
+++ b/aboot-1.0~pre20200212/debian/control	2024-10-18 20:00:06.000000000 +0200
@@ -1,6 +1,6 @@
 Source: aboot
 Build-Depends: debhelper (>= 9), docbook-utils, libext2fs-dev [alpha], rename
-Build-Depends-Indep: gcc-alpha-linux-gnu [!alpha], libc6.1-dev-alpha-cross [!alpha]
+Build-Depends-Indep: gcc-alpha-linux-gnu [!alpha], libc6.1-dev-alpha-cross [!alpha], libext2fs-dev
 Section: admin
 Priority: standard
 Maintainer: John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de>
Description : fix for a conflict in 'long' type definitions.
 _u64 means long on alpha, and long long on amd64 [1].
 A mismatch may occur when cross-compiling for alpha on amd64.
 .
 Include <linux/types.h> early, so ext2fs/ext2_fs.h do not define
 these types according to the build architecture (instead of the host
 architecture).
 .
 [1] : https://wiki.debian.org/ArchitectureSpecificsMemo
 and /usr/include/alpha-linux-gnu/asm/types.h

diff -Naur a/aboot-1.0~pre20200212/fs/ext2.c b/aboot-1.0~pre20200212/fs/ext2.c
--- a/aboot-1.0~pre20200212/fs/ext2.c	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/fs/ext2.c	2024-10-18 20:00:07.000000000 +0200
@@ -6,6 +6,7 @@
  * This file has been ported from the DEC 32-bit Linux version
  * by David Mosberger (dav...@cs.arizona.edu).
  */
+#include <linux/types.h>
 #include <sys/stat.h>
 #include <ext2fs/ext2_fs.h>
 
Description: remove tentative definitions
 GCC default changed from -fcommon to -fno-common (see GCC bugzilla #85678)
 Multiple definitions of variables or structures result in a fatal error
 at link stage.

diff -Naur a/aboot-1.0~pre20200212/include/bootfs.h b/aboot-1.0~pre20200212/include/bootfs.h
--- a/aboot-1.0~pre20200212/include/bootfs.h	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/include/bootfs.h	2024-10-18 20:00:08.000000000 +0200
@@ -19,6 +19,7 @@
 	   mix it with other I/O or you will die horribly */
 	const char *	(*readdir)(int fd, int rewind);
 	int	(*fstat)(int fd, struct stat* buf);
-} ext2fs;
+};
+extern struct bootfs ext2fs;
 
 #endif /* boot_fs_h */
diff -Naur a/aboot-1.0~pre20200212/include/utils.h b/aboot-1.0~pre20200212/include/utils.h
--- a/aboot-1.0~pre20200212/include/utils.h	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/include/utils.h	2024-10-18 20:00:08.000000000 +0200
@@ -19,6 +19,6 @@
 
 int		check_memory(unsigned long, unsigned long);
 unsigned long	memory_end(void);
-unsigned long	free_mem_ptr;
+extern unsigned long	free_mem_ptr;
 
 #endif /* utils_h */
diff -Naur a/aboot-1.0~pre20200212/zip/gzip.h b/aboot-1.0~pre20200212/zip/gzip.h
--- a/aboot-1.0~pre20200212/zip/gzip.h	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/zip/gzip.h	2024-10-18 20:00:08.000000000 +0200
@@ -31,8 +31,8 @@
 #define WSIZE		 0x8000	/* window size--must be a power of two, and */
 				/*  at least 32K for zip's deflate method */
 
-unsigned char *inbuf;	/* input buffer */
-unsigned char *window;	/* sliding window and suffix table (unlzw) */
+extern unsigned char *inbuf;	/* input buffer */
+extern unsigned char *window;	/* sliding window and suffix table (unlzw) */
 
 extern unsigned insize; /* valid bytes in inbuf */
 extern unsigned inptr;  /* index of next byte to be processed in inbuf */
Description: allow for a STRIP variable
 Cross compiling makes use of a non native strip binary.

diff -Naur a/aboot-1.0~pre20200212/Makefile b/aboot-1.0~pre20200212/Makefile
--- a/aboot-1.0~pre20200212/Makefile	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/Makefile	2024-10-18 20:00:09.000000000 +0200
@@ -8,6 +8,9 @@
 # Copyright (c) 1995, 1996 by David Mosberger (dav...@cs.arizona.edu)
 #
 
+# strip is non native when cross-compiling
+STRIP ?= strip
+
 # location of linux kernel sources (must be absolute path):
 KSRC		= /usr/src/linux
 VMLINUX		= $(KSRC)/vmlinux
@@ -119,7 +122,7 @@
 	cat net_aboot.nh $(VMLINUXGZ) net_pad > $@
 
 net_aboot.nh: net_aboot tools/objstrip
-	strip net_aboot
+	$(STRIP) net_aboot
 	tools/objstrip -vb net_aboot $@
 
 net_aboot: $(ABOOT_OBJS) $(ABOOT_OBJS) $(NET_OBJS) $(LIBS)
Description: native helpers for architectures !alpha
 Helpers are needed to build the alpha binaries.
 When cross compiling, these helpers run on the build host.
 It is not expected to succeed on 32 bit or big endian architectures (however,
 a cross compiler would be required to build aboot-base in the first place).

diff -Naur a/aboot-1.0~pre20200212/Makefile b/aboot-1.0~pre20200212/Makefile
--- a/aboot-1.0~pre20200212/Makefile	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/Makefile	2024-10-18 20:00:10.000000000 +0200
@@ -154,4 +154,8 @@
 include/ksize.h: vmlinux.nh
 	echo "#define KERNEL_SIZE `ls -l vmlinux.nh | awk '{print $$5}'` > $@
 
+.PHONY : b2c_native
+b2c_native:
+	$(CC_NATIVE) -o b2c b2c.c
+
 dep:
diff -Naur a/aboot-1.0~pre20200212/tools/Makefile b/aboot-1.0~pre20200212/tools/Makefile
--- a/aboot-1.0~pre20200212/tools/Makefile	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/tools/Makefile	2024-10-18 20:00:10.000000000 +0200
@@ -16,3 +16,8 @@
 
 e2writeboot.o:	e2lib.h
 e2lib.o: e2lib.h
+
+.PHONY : objstrip_native
+objstrip_native:
+	$(CC_NATIVE) -o objstrip $(CFLAGS) objstrip.c
+
Description: Fix the path of the a.out.h header
 It is a kernel header on alpha.
 libc6.1-dev-alpha-cross provides it on other architectures.

diff -Naur a/aboot-1.0~pre20200212/tools/Makefile b/aboot-1.0~pre20200212/tools/Makefile
--- a/aboot-1.0~pre20200212/tools/Makefile	2024-10-18 20:00:10.000000000 +0200
+++ b/aboot-1.0~pre20200212/tools/Makefile	2024-10-18 20:00:11.000000000 +0200
@@ -19,5 +19,5 @@
 
 .PHONY : objstrip_native
 objstrip_native:
-	$(CC_NATIVE) -o objstrip $(CFLAGS) objstrip.c
+	$(CC_NATIVE) -o objstrip -DALPHA_AOUT_H $(CFLAGS) objstrip.c
 
diff -Naur a/aboot-1.0~pre20200212/tools/objstrip.c b/aboot-1.0~pre20200212/tools/objstrip.c
--- a/aboot-1.0~pre20200212/tools/objstrip.c	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/tools/objstrip.c	2024-10-18 20:00:11.000000000 +0200
@@ -22,7 +22,13 @@
 #include <sys/stat.h>
 #include <sys/types.h>
 
+#ifdef ALPHA_AOUT_H
+/* We need the definition of struct exec on alpha *
+* in order to compile on another architecture    */
+#include "/usr/alpha-linux-gnu/include/a.out.h"
+#else
 #include <linux/a.out.h>
+#endif
 #include <linux/coff.h>
 #include <linux/param.h>
 #ifdef __ELF__
Description : fix for a 'long' type mismatch
 _u64 means long on alpha, and long long on amd64.
 This is the cause of a warning when cross-compiling on amd64.
 The argument of printf in objstrip.c is cast to a 'long' to silent the warning.

diff -Naur a/aboot-1.0~pre20200212/tools/objstrip.c b/aboot-1.0~pre20200212/tools/objstrip.c
--- a/aboot-1.0~pre20200212/tools/objstrip.c	2024-10-18 20:00:11.000000000 +0200
+++ b/aboot-1.0~pre20200212/tools/objstrip.c	2024-10-18 20:00:12.000000000 +0200
@@ -38,6 +38,12 @@
 # define elf_check_arch(x) ((x)->e_machine == EM_ALPHA)
 #endif
 
+#ifdef __amd64__
+#define LL_TO_L (long)
+#else
+#define LL_TO_L
+#endif
+
 /* bootfile size must be multiple of BLOCK_SIZE: */
 #define BLOCK_SIZE	512
 
@@ -195,7 +201,7 @@
 	if (verbose) {
 	    fprintf(stderr, "%s: extracting %#016lx-%#016lx (at %lx)\n",
 		    prog_name, (long) elf_phdr->p_vaddr,
-		    elf_phdr->p_vaddr + fil_size, offset);
+		    LL_TO_L elf_phdr->p_vaddr + fil_size, offset);
 	}
     } else
 #endif
Description: build aboot-base on non alpha architectures
 aboot-base is Arch: all.
 One may build aboot-base on amd64 with dpkg-buildpackage -A.

diff -Naur a/aboot-1.0~pre20200212/debian/rules b/aboot-1.0~pre20200212/debian/rules
--- a/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:05.000000000 +0200
+++ b/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:13.000000000 +0200
@@ -64,9 +64,6 @@
 	$(MAKE) -C doc/man all
 	$(MAKE) -C doc/man/de all
 	$(MAKE) -C srmbootfat all CC=$(CC) $(shell dpkg-buildflags --export=configure)
-ifneq (,$(filter aboot-base, $(shell dh_listpackages)))
-	$(MAKE) $(TESTING) bootlx net_aboot.nh net_pad CC=$(CC) $(shell dpkg-buildflags --export=configure)
-endif
 else
 ifneq (,$(filter aboot-cross, $(shell dh_listpackages)))
 	$(MAKE) -C tools $(TESTING) isomarkboot CC=$(CC) $(shell dpkg-buildflags --export=configure)
@@ -77,6 +74,14 @@
 endif
 endif
 ifneq (,$(filter aboot-base, $(shell dh_listpackages)))
+ifneq (alpha-linux-gnu,$(DEB_BUILD_GNU_TYPE)) # We are cross-compiling
+# objstrip is a helper which run on the build host to generate bootlx
+	$(MAKE) -C tools objstrip_native CC_NATIVE=$(CC_NATIVE) $(shell DEB_HOST_ARCH=$$DEB_BUILD_ARCH dpkg-buildflags --export=configure)
+endif
+ifneq (alpha-linux-gnu,$(DEB_HOST_GNU_TYPE)) # Clean leftover native objects
+	$(MAKE) -C lib clean
+endif
+	$(MAKE) $(TESTING) bootlx net_aboot.nh net_pad CC=$(CC_ALPHA) LD=$(LD_ALPHA) STRIP=$(STRIP_ALPHA) $(shell DEB_HOST_ARCH=alpha dpkg-buildflags --export=configure)
 	$(MAKE) -C doc/faq
 endif
 
Description : fix for a conflict in 'long' type definitions.
 _u64 means long on alpha, and long long on amd64 [1].
 .
 Include <linux/types.h> early, so ext2fs/ext2_fs.h do not define
 these types according to the build architecture (instead of the host
 architecture).
 .
 [1] : https://wiki.debian.org/ArchitectureSpecificsMemo
 and /usr/include/alpha-linux-gnu/asm/types.h


diff -Naur a/aboot-1.0~pre20200212/tools/e2writeboot.c b/aboot-1.0~pre20200212/tools/e2writeboot.c
--- a/aboot-1.0~pre20200212/tools/e2writeboot.c	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/tools/e2writeboot.c	2024-10-18 20:00:14.000000000 +0200
@@ -19,6 +19,8 @@
 
 #include <sys/stat.h>
 
+#include <linux/types.h>
+
 #include <e2lib.h>
 #include <ext2fs/ext2_fs.h>
 
Description : Add a missing stdlib.h in netabootwrap.c
 This is a fix for a compilation error of netabootwrap.c.
 'exit' as a function is declared in header stdlib.h.

diff -Naur a/aboot-1.0~pre20200212/netabootwrap.c b/aboot-1.0~pre20200212/netabootwrap.c
--- a/aboot-1.0~pre20200212/netabootwrap.c	2020-02-15 04:11:54.000000000 +0100
+++ b/aboot-1.0~pre20200212/netabootwrap.c	2024-10-18 20:00:15.000000000 +0200
@@ -6,6 +6,7 @@
 #include <string.h>
 #include <sys/stat.h>
 #include <unistd.h>
+#include <stdlib.h>
 #include "netwrap.h"
 #include "bootloader.h"
 
Description : Add a 'cross' build profile
 When cross compiling, the path of libc6.1 (as shipped in libc6.1-dev-alpha-cross)
 is unknown to dh_shlibdeps. So, we give it a hint.
 .
 It helps to cross compile aboot-cross too.

diff -Naur a/aboot-1.0~pre20200212/debian/rules b/aboot-1.0~pre20200212/debian/rules
--- a/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:13.000000000 +0200
+++ b/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:16.000000000 +0200
@@ -117,3 +117,8 @@
 	install -m 644 net_aboot.nh debian/aboot-base/boot/
 	install -m 644 net_pad debian/aboot-base/boot/
 endif
+
+ifneq (,$(filter cross, $(DEB_BUILD_PROFILES)))
+override_dh_shlibdeps:
+	dh_shlibdeps -l/usr/alpha-linux-gnu/lib -l/usr/$(DEB_HOST_GNU_TYPE)/lib
+endif
Description : build depends on a virtual package when cross-compiling
 When cross compiling, build depends on the virtual package
 'e2fslibs-dev' (which libext2fs-dev provides) to avoid an
 error due to a mismatch between the host and build architectures.

diff -Naur a/aboot-1.0~pre20200212/debian/control b/aboot-1.0~pre20200212/debian/control
--- a/aboot-1.0~pre20200212/debian/control	2024-10-18 20:00:06.000000000 +0200
+++ b/aboot-1.0~pre20200212/debian/control	2024-10-18 20:00:17.000000000 +0200
@@ -1,6 +1,6 @@
 Source: aboot
-Build-Depends: debhelper (>= 9), docbook-utils, libext2fs-dev [alpha], rename
-Build-Depends-Indep: gcc-alpha-linux-gnu [!alpha], libc6.1-dev-alpha-cross [!alpha], libext2fs-dev
+Build-Depends: debhelper (>= 9), docbook-utils, libext2fs-dev [alpha] <!cross>, rename, e2fslibs-dev <cross>
+Build-Depends-Indep: gcc-alpha-linux-gnu [!alpha], libc6.1-dev-alpha-cross [!alpha], libext2fs-dev <!cross>, e2fslibs-dev <cross>
 Section: admin
 Priority: standard
 Maintainer: John Paul Adrian Glaubitz <glaub...@physik.fu-berlin.de>
Description : preliminary support to cross build aboot
 To build aboot and aboot-base (and the source package) on amd64 
 (gcc-alpha-linux-gnu and libc6.1-dev-alpha-cross are installed) :
 dpkg-buildpackage --host-arch=alpha --build-profiles=cross -uc -us
 .
 To build aboot-cross for arm64 on amd64 (crossbuild-essential-arm64 is
 installed, and gcc-alpha-linux-gnu and libc6.1-dev-alpha-cross as well,
 even if they are not really useful in this case) :
 dpkg-buildpackage -B --host-arch=arm64 --build-profiles=cross -uc -us

diff -Naur a/aboot-1.0~pre20200212/debian/rules b/aboot-1.0~pre20200212/debian/rules
--- a/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:16.000000000 +0200
+++ b/aboot-1.0~pre20200212/debian/rules	2024-10-18 20:00:18.000000000 +0200
@@ -60,10 +60,15 @@
 
 override_dh_auto_build:
 ifeq (alpha,$(DEB_HOST_GNU_CPU))
-	$(MAKE) $(TESTING) all netabootwrap CC=$(CC) $(shell dpkg-buildflags --export=configure)
+ifneq (alpha-linux-gnu,$(DEB_BUILD_GNU_TYPE)) # We are cross-compiling
+# We compile two helpers. They are run on the build host to generate bootlx and netabootwrap
+	$(MAKE) -C tools objstrip_native CC_NATIVE=$(CC_NATIVE) $(shell DEB_HOST_ARCH=$$DEB_BUILD_ARCH dpkg-buildflags --export=configure)
+	$(MAKE) b2c_native CC_NATIVE=$(CC_NATIVE) $(shell DEB_HOST_ARCH=$$DEB_BUILD_ARCH dpkg-buildflags --export=configure)
+endif
+	$(MAKE) $(TESTING) all netabootwrap CC=$(CC_ALPHA) LD=$(LD_ALPHA) STRIP=$(STRIP_ALPHA) $(shell DEB_HOST_ARCH=alpha dpkg-buildflags --export=configure)
 	$(MAKE) -C doc/man all
 	$(MAKE) -C doc/man/de all
-	$(MAKE) -C srmbootfat all CC=$(CC) $(shell dpkg-buildflags --export=configure)
+	$(MAKE) -C srmbootfat all CC=$(CC_ALPHA) LD=$(LD_ALPHA) STRIP=$(STRIP_ALPHA) $(shell DEB_HOST_ARCH=alpha dpkg-buildflags --export=configure)
 else
 ifneq (,$(filter aboot-cross, $(shell dh_listpackages)))
 	$(MAKE) -C tools $(TESTING) isomarkboot CC=$(CC) $(shell dpkg-buildflags --export=configure)
Description: Add support of dpkg chrootless mode
 Allow for a variable 'DPKG_ROOT'
 See https://wiki.debian.org/Teams/Dpkg/Spec/InstallBootstrap

diff -Naur a/aboot-1.0~pre20200212/debian/aboot.postinst b/aboot-1.0~pre20200212/debian/aboot.postinst
--- a/aboot-1.0~pre20200212/debian/aboot.postinst	2020-03-07 11:33:09.000000000 +0100
+++ b/aboot-1.0~pre20200212/debian/aboot.postinst	2024-10-18 20:00:19.000000000 +0200
@@ -1,7 +1,7 @@
 #!/bin/sh -e
 
-if [ ! -e /etc/aboot.conf ]; then
-	cp -a /usr/share/aboot/aboot.conf /etc/
+if [ ! -e ${DPKG_ROOT}/etc/aboot.conf ]; then
+	cp -a ${DPKG_ROOT}/usr/share/aboot/aboot.conf ${DPKG_ROOT}/etc/
 fi
 
 #DEBHELPER#

Reply via email to