Date: Sat, 2 Jul 2011 17:22:15 +0200 From: Robert Millan <rmh@debian.org> To: freebsd-hackers@freebsd.org, Ed Maste <emaste@freebsd.org> Subject: [PATCH] bogus use of __linux__ in aicasm Message-ID: <CAOfDtXN3Ox5jAYKoDmZQJGNyW5EF3UmnyR_ARGNhFNRWbechRQ@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --] Code in sys/dev/aic7xxx/aicasm/ contains a few checks on the __linux__ macro that actually break build on GNU systems (including Linux-based ones but also GNU/kFreeBSD). Some of them use __linux__ to include an alternate version of <sys/queue.h> that would be placed in "../queue.h". However that file isn't present, which causes build failure. However, this isn't needed anyway, because non-BSD systems can use libbsd [1] to override the GNU version of <sys/queue.h> with a suitable one (Debian uses this method extensively). Hence I propose simply including <sys/queue.h>. In aicasm_symbol.c the __linux__ case again tries to include a non-existant file. As solution I propose assuming that non-BSD systems have installed the 1.85 version of Sleepycat library, which attempts to provide the same API as the BSD native libdb. aicasm.c wants to include <endian.h> only on Linux-based systems, but actually any system with Glibc would provide this file. Proposing fix to use __GLIBC__ instead. Thanks [1] http://libbsd.freedesktop.org/wiki/ -- Robert Millan [-- Attachment #2 --] Index: sys/dev/aic7xxx/aicasm/aicasm.h =================================================================== --- sys/dev/aic7xxx/aicasm/aicasm.h (revision 223721) +++ sys/dev/aic7xxx/aicasm/aicasm.h (working copy) @@ -42,11 +42,7 @@ * $FreeBSD$ */ -#ifdef __linux__ -#include "../queue.h" -#else #include <sys/queue.h> -#endif #ifndef TRUE #define TRUE 1 Index: sys/dev/aic7xxx/aicasm/aicasm_symbol.c =================================================================== --- sys/dev/aic7xxx/aicasm/aicasm_symbol.c (revision 223721) +++ sys/dev/aic7xxx/aicasm/aicasm_symbol.c (working copy) @@ -44,10 +44,11 @@ #include <sys/types.h> -#ifdef __linux__ -#include "aicdb.h" +#include <sys/param.h> /* BSD */ +#ifdef BSD +#include <db.h> /* BSD native libdb */ #else -#include <db.h> +#include <db_185.h> /* Sleepycat 1.85 compat */ #endif #include <ctype.h> #include <fcntl.h> Index: sys/dev/aic7xxx/aicasm/aicasm_symbol.h =================================================================== --- sys/dev/aic7xxx/aicasm/aicasm_symbol.h (revision 223721) +++ sys/dev/aic7xxx/aicasm/aicasm_symbol.h (working copy) @@ -42,11 +42,7 @@ * $FreeBSD$ */ -#ifdef __linux__ -#include "../queue.h" -#else #include <sys/queue.h> -#endif typedef enum { UNINITIALIZED, Index: sys/dev/aic7xxx/aicasm/aicasm_gram.y =================================================================== --- sys/dev/aic7xxx/aicasm/aicasm_gram.y (revision 223721) +++ sys/dev/aic7xxx/aicasm/aicasm_gram.y (working copy) @@ -51,12 +51,7 @@ #include <stdlib.h> #include <string.h> #include <sysexits.h> - -#ifdef __linux__ -#include "../queue.h" -#else #include <sys/queue.h> -#endif #include "aicasm.h" #include "aicasm_symbol.h" Index: sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y =================================================================== --- sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y (revision 223721) +++ sys/dev/aic7xxx/aicasm/aicasm_macro_gram.y (working copy) @@ -51,12 +51,7 @@ #include <stdlib.h> #include <string.h> #include <sysexits.h> - -#ifdef __linux__ -#include "../queue.h" -#else #include <sys/queue.h> -#endif #include "aicasm.h" #include "aicasm_symbol.h" Index: sys/dev/aic7xxx/aicasm/aicasm_scan.l =================================================================== --- sys/dev/aic7xxx/aicasm/aicasm_scan.l (revision 223721) +++ sys/dev/aic7xxx/aicasm/aicasm_scan.l (working copy) @@ -51,11 +51,7 @@ #include <stdio.h> #include <string.h> #include <sysexits.h> -#ifdef __linux__ -#include "../queue.h" -#else #include <sys/queue.h> -#endif #include "aicasm.h" #include "aicasm_symbol.h" Index: sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l =================================================================== --- sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l (revision 223721) +++ sys/dev/aic7xxx/aicasm/aicasm_macro_scan.l (working copy) @@ -51,11 +51,7 @@ #include <stdio.h> #include <string.h> #include <sysexits.h> -#ifdef __linux__ -#include "../queue.h" -#else #include <sys/queue.h> -#endif #include "aicasm.h" #include "aicasm_symbol.h" Index: sys/dev/aic7xxx/aicasm/aicasm.c =================================================================== --- sys/dev/aic7xxx/aicasm/aicasm.c (revision 223721) +++ sys/dev/aic7xxx/aicasm/aicasm.c (working copy) @@ -53,7 +53,7 @@ #include <sysexits.h> #include <unistd.h> -#if linux +#ifdef __GLIBC__ #include <endian.h> #else #include <machine/endian.h>
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOfDtXN3Ox5jAYKoDmZQJGNyW5EF3UmnyR_ARGNhFNRWbechRQ>
