Module Name: src Committed By: martin Date: Sun Dec 15 12:57:33 UTC 2024
Modified Files: src/sys/arch/hppa/stand/mkboot [netbsd-10]: mkboot.c src/sys/arch/powerpc/stand/mkbootimage [netbsd-10]: mkbootimage.c src/usr.bin/elf2aout [netbsd-10]: elf2aout.c Log Message: Pull up following revision(s) (requested by gutteridge in ticket #1019): sys/arch/hppa/stand/mkboot/mkboot.c: revision 1.5 sys/arch/powerpc/stand/mkbootimage/mkbootimage.c: revision 1.21 usr.bin/elf2aout/elf2aout.c: revision 1.25 mkboot.c: ensure all functions are declared Addresses build failure issue on current Linux distros that have a GCC with implicit-function-declaration baked in as an error. Use be32toh(3) instead of ntohl(3), seems to make more sense stylistically. Build tested on Fedora 40. Issue reported by Jan-Benedict Glaw. Also relevant to PR lib/58674. elf2aout.c: switch to use htobe32(3) As discussed on tech-toolchain. Tested with virt68k tools build on Fedora 40. (Relevant to PR lib/58674.) mkbootimage.c: consistently use sa_htobe32(2) There were 38 calls to sa_htobe32(2) and two to htonl(3), mixed even within the same function, with arpa/inet.h not included. (It's unclear why this varied, as the original version of this file first checked in included this discrepancy.) Addresses build failure issue on current Linux distros that have a GCC with implicit-function-declaration baked in as an error. Build tested on Fedora 40. Issue reported by Jan-Benedict Glaw. Also relevant to PR lib/58674. To generate a diff of this commit: cvs rdiff -u -r1.2 -r1.2.48.1 src/sys/arch/hppa/stand/mkboot/mkboot.c cvs rdiff -u -r1.19 -r1.19.48.1 \ src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c cvs rdiff -u -r1.23.10.1 -r1.23.10.2 src/usr.bin/elf2aout/elf2aout.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/arch/hppa/stand/mkboot/mkboot.c diff -u src/sys/arch/hppa/stand/mkboot/mkboot.c:1.2 src/sys/arch/hppa/stand/mkboot/mkboot.c:1.2.48.1 --- src/sys/arch/hppa/stand/mkboot/mkboot.c:1.2 Thu Jan 21 17:00:23 2016 +++ src/sys/arch/hppa/stand/mkboot/mkboot.c Sun Dec 15 12:57:32 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: mkboot.c,v 1.2 2016/01/21 17:00:23 christos Exp $ */ +/* $NetBSD: mkboot.c,v 1.2.48.1 2024/12/15 12:57:32 martin Exp $ */ /* $OpenBSD: mkboot.c,v 1.9 2001/05/17 00:57:55 pvalchev Exp $ */ @@ -53,6 +53,7 @@ static char rcsid[] = "$OpenBSD: mkboot. #endif #include <sys/param.h> +#include <sys/endian.h> #include <sys/file.h> #include <sys/stat.h> #include <string.h> @@ -83,7 +84,7 @@ static char rcsid[] = "$OpenBSD: mkboot. * Header prepended to each a.out file. */ struct exec { - u_long a_midmag; /* htonl(flags<<26 | mid<<16 | magic) */ + u_long a_midmag; /* htobe32(flags<<26 | mid<<16 | magic) */ u_long a_text; /* text segment size */ u_long a_data; /* initialized data size */ u_long a_bss; /* uninitialized data size */ @@ -101,7 +102,7 @@ struct exec { #define N_GETMAGIC(ex) \ ((((ex).a_midmag)&0xffff0000) ? \ - (ntohl((uint32_t)((ex).a_midmag))&0xffff) : ((ex).a_midmag)) + (be32toh((uint32_t)((ex).a_midmag))&0xffff) : ((ex).a_midmag)) #include <stdio.h> #include <ctype.h> Index: src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c diff -u src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c:1.19 src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c:1.19.48.1 --- src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c:1.19 Thu Jan 21 17:14:05 2016 +++ src/sys/arch/powerpc/stand/mkbootimage/mkbootimage.c Sun Dec 15 12:57:32 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: mkbootimage.c,v 1.19 2016/01/21 17:14:05 christos Exp $ */ +/* $NetBSD: mkbootimage.c,v 1.19.48.1 2024/12/15 12:57:32 martin Exp $ */ /*- * Copyright (c) 2007 The NetBSD Foundation, Inc. @@ -579,11 +579,11 @@ rs6000_build_image(char *kernel, char *b printf("writing records\n"); memcpy(swapped, &bootrec, sizeof(rs6000_boot_record_t)); for (i=0; i < 128; i++) - swapped[i] = htonl(swapped[i]); + swapped[i] = sa_htobe32(swapped[i]); write(rs6000_fd, swapped, sizeof(rs6000_boot_record_t)); memcpy(swapped, &confrec, sizeof(rs6000_config_record_t)); for (i=0; i < 128; i++) - swapped[i] = htonl(swapped[i]); + swapped[i] = sa_htobe32(swapped[i]); write(rs6000_fd, swapped, sizeof(rs6000_config_record_t)); free(kern_img); Index: src/usr.bin/elf2aout/elf2aout.c diff -u src/usr.bin/elf2aout/elf2aout.c:1.23.10.1 src/usr.bin/elf2aout/elf2aout.c:1.23.10.2 --- src/usr.bin/elf2aout/elf2aout.c:1.23.10.1 Sun Nov 17 13:32:53 2024 +++ src/usr.bin/elf2aout/elf2aout.c Sun Dec 15 12:57:32 2024 @@ -1,4 +1,4 @@ -/* $NetBSD: elf2aout.c,v 1.23.10.1 2024/11/17 13:32:53 martin Exp $ */ +/* $NetBSD: elf2aout.c,v 1.23.10.2 2024/12/15 12:57:32 martin Exp $ */ /* * Copyright (c) 1995 @@ -43,6 +43,7 @@ #endif #include <sys/types.h> +#include <sys/endian.h> #include <sys/exec_aout.h> #include <sys/exec_elf.h> @@ -56,8 +57,6 @@ #include <string.h> #include <unistd.h> -#include <arpa/inet.h> - struct sect { /* should be unsigned long, but assume no a.out binaries on LP64 */ @@ -372,7 +371,7 @@ main(int argc, char **argv) /* We now have enough information to cons up an a.out header... */ mid = get_mid(&ex); - aex.a_midmag = (u_long)htonl(((u_long)symflag << 26) + aex.a_midmag = (u_long)htobe32(((u_long)symflag << 26) | ((u_long)mid << 16) | magic); aex.a_text = text.len;