[PATCH] bogus use of __linux__ in aicasm
Robert Millan
rmh at debian.org
Sat Jul 2 15:22:16 UTC 2011
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
-------------- next part --------------
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>
More information about the freebsd-hackers
mailing list