Fix building on Solaris (and don't break Cygwin)
PATCH 1/1 Fix building on Solaris (and don't break Cygwin)
The following is from Jean-Christophe Dubois <[email protected]>. On Solaris 2.8, <stdint.h> does not exist, but <inttypes.h> does. However, on cygwin (the other odd place that the kernel is compiled on) <inttypes.h> doesn't exist. So we end up with something like the following.
scripts/sumversion.c Fri Jul 9 04:10:27 2004 renamed from scripts/sumversion.c Wed Jun 16 01:19:43 2004 +4 -0
@@ -1,5 +1,9 @@ #include <netinet/in.h> +#ifdef __sun__ +#include <inttypes.h> +#else // __sun__ #include <stdint.h> +#endif // __sun__ #include <ctype.h> #include <errno.h> #include <string.h>
scripts/genksyms/genksyms.c Thu Jul 8 11:04:04 2004 renamed from scripts/genksyms/genksyms.c Wed Jun 16 01:19:23 2004 +3 -0
@@ -27,7 +27,9 @@ #include <unistd.h> #include <assert.h> #include <stdarg.h> +#ifdef __GNU_LIBRARY__ #include <getopt.h> +#endif /* __GNU_LIBRARY__ */ #include "genksyms.h"
@@ -502,12 +504,21 @@ fputs("Usage:\n" "genksyms [-dDwqhV] > /path/to/.tmp_obj.ver\n" "\n" +#ifdef __GNU_LIBRARY__ " -d, --debug Increment the debug level
(repeatable)\n"
" -D, --dump Dump expanded symbol defs (for
debugging only)\n"
" -w, --warnings Enable warnings\n"
" -q, --quiet Disable warnings (default)\n"
" -h, --help Print this message\n"
" -V, --version Print the release version\n"+#else /* __GNU_LIBRARY__ */
+ " -d Increment the debug level
(repeatable)\n"
+ " -D Dump expanded symbol defs (for
debugging only)\n"
+ " -w Enable warnings\n"
+ " -q Disable warnings (default)\n"
+ " -h Print this message\n"
+ " -V Print the release version\n"
+#endif /* __GNU_LIBRARY__ */
, stderr);}
@@ -516,6 +527,7 @@
{
int o;
+#ifdef __GNU_LIBRARY__
struct option long_opts[] = {
{"debug", 0, 0, 'd'},
{"warnings", 0, 0, 'w'},@@ -528,6 +540,9 @@
while ((o = getopt_long(argc, argv, "dwqVDk:p:",
&long_opts[0], NULL)) != EOF)
+#else /* __GNU_LIBRARY__ */
+ while ((o = getopt(argc, argv, "dwqVDk:p:")) != EOF)
+#endif /* __GNU_LIBRARY__ */
switch (o)
{
case 'd':arch/ppc/boot/utils/mkbugboot.c Fri Jul 9 04:11:43 2004 renamed from arch/ppc/boot/utils/mkbugboot.c Wed Jun 16 01:19:36 2004 +5 -5
@@ -21,6 +21,11 @@ #include <stdlib.h> #include <errno.h> #include <fcntl.h> +#ifdef __sun__ +#include <inttypes.h> +#else // __sun__ +#include <stdint.h> +#endif // __sun__ #ifdef __i386__ #define cpu_to_be32(x) le32_to_cpu(x)
@@ -48,11 +53,6 @@ /* size of read buffer */ #define SIZE 0x1000 - -/* typedef long int32_t; */ -typedef unsigned long uint32_t; -typedef unsigned short uint16_t; -typedef unsigned char uint8_t; /* PPCBUG ROM boot header */ typedef struct bug_boot_header {
Signature · 2 lines
Tom Rini http://gate.crashing.org/~trini/
Quoted 6 lines · Tom Rini
The following is from Jean-Christophe Dubois <[email protected]>. On Solaris 2.8, <
stdint.h> does not exist, but <inttypes.h> does. However, on cygwin (the other odd place that the kernel is compiled on) <inttypes.h> doesn't exist. So we end up with something like the following.Signed-off-by Tom Rini <[email protected]>
Yikes. <stdint.h> is mandated by C99, please complain to sun instead or write up the header yourself - it's not that difficult anyway.
Quoted 10 lines · Christoph Hellwig
Quoted 6 lines · Tom Rini
The following is from Jean-Christophe Dubois <[email protected]>. On Solaris 2.8, <
stdint.h> does not exist, but <inttypes.h> does. However, on cygwin (the other odd place that the kernel is compiled on) <inttypes.h> doesn't exist. So we end up with something like the following.Signed-off-by Tom Rini <[email protected]>Yikes. <
stdint.h> is mandated by C99, please complain to sun instead or write up the header yourself - it's not that difficult anyway.
I forgot to CC Jean on this, but that's not exactly a nice option. In fact, it'd be fine to just switch to <inttypes.h>, afaics, except that cygwin doesn't have that.
Signature · 2 lines
Tom Rini http://gate.crashing.org/~trini/
Quoted 3 lines · Tom Rini
I forgot to CC Jean on this, but that's not exactly a nice option. In fact, it'd be fine to just switch to <
inttypes.h>, afaics, except that cygwin doesn't have that.
Tell him to build on Linux, we don't support legacy OSes ;-)
Hello Christoph,
Quoted 6 lines · Christoph Hellwig
Quoted 3 lines · Tom Rini
I forgot to CC Jean on this, but that's not exactly a nice option. In fact, it'd be fine to just switch to <
inttypes.h>, afaics, except that cygwin doesn't have that.Tell him to build on Linux, we don't support legacy OSes ;-)
Although I am certainly hopeful I will be able to use Linux end to end in a not too distant future :), I have to work with what I am given today. And maybe I am not the only one in this situation ...
Please be a bit compassionate with the poor souls out there that have to cope with Legacy OSes as build systems and/or configuration management systems :(
Also please note that 2.4 uses to build OK on Solaris. The actual 2.6 situation is a little step-back in this matter.
JC
Followup to: <[email protected]> By author: Christoph Hellwig <[email protected]> In newsgroup: linux.dev.kernel
Quoted 9 lines · Tom Rini
Quoted 6 lines
The following is from Jean-Christophe Dubois <[email protected]>. On Solaris 2.8, <
stdint.h> does not exist, but <inttypes.h> does. However, on cygwin (the other odd place that the kernel is compiled on) <inttypes.h> doesn't exist. So we end up with something like the following.Signed-off-by Tom Rini <[email protected]>
Quoted 3 lines
Yikes. <
stdint.h> is mandated by C99, please complain to sun instead or write up the header yourself - it's not that difficult anyway.
<inttypes.h> is also mandated by C99, and is a more complete header (it includes stdint.h).
-hpa
Quoted 12 lines · H. Peter Anvin
Followup to: <[email protected]> By author: Christoph Hellwig <[email protected]> In newsgroup: linux.dev.kernelQuoted 9 lines · Tom Rini
Quoted 6 lines
The following is from Jean-Christophe Dubois <[email protected]>. On Solaris 2.8, <
stdint.h> does not exist, but <inttypes.h> does. However, on cygwin (the other odd place that the kernel is compiled on) <inttypes.h> doesn't exist. So we end up with something like the following.Signed-off-by Tom Rini <[email protected]>
Quoted 6 lines
Quoted 3 lines
Yikes. <
stdint.h> is mandated by C99, please complain to sun instead or write up the header yourself - it's not that difficult anyway.<
inttypes.h> is also mandated by C99, and is a more complete header (it includesstdint.h).
Which makes it quite annoying that Cygwin lacks it.
Signature · 2 lines
Tom Rini http://gate.crashing.org/~trini/