Fix compiling on Solaris since Nate's libelf change
authorAli Saidi <saidi@eecs.umich.edu>
Wed, 30 May 2007 21:08:12 +0000 (17:08 -0400)
committerAli Saidi <saidi@eecs.umich.edu>
Wed, 30 May 2007 21:08:12 +0000 (17:08 -0400)
SConstruct:
    export env after we've set CC/CXX
ext/libelf/SConscript:
    pull in the CC/CXX variables from env. Use gm4 if it exists
ext/libelf/elf_begin.c:
ext/libelf/libelf_allocate.c:
    include errno.h instead of sys/errno.h
ext/libelf/elf_common.h:
    use the more standard uintX_t
ext/libelf/elf_strptr.c:
ext/libelf/elf_update.c:
    include sysmacros.h on Solaris for roundup()

--HG--
extra : convert_revision : ea1aab834029399c445dfa4c9f78febf2c3d8f0c

SConstruct
ext/libelf/SConscript
ext/libelf/elf_begin.c
ext/libelf/elf_common.h
ext/libelf/elf_strptr.c
ext/libelf/elf_update.c
ext/libelf/libelf_allocate.c

index a6659fe9b34a7bdf7317e29bfea306f5ff60906c..17391001097c6dbf3503364bd13278fdc0b5dcfc 100644 (file)
@@ -182,7 +182,6 @@ for t in abs_targets:
 env = Environment(ENV = os.environ,  # inherit user's environment vars
                   ROOT = ROOT,
                   SRCDIR = SRCDIR)
-Export('env')
 
 #Parse CC/CXX early so that we use the correct compiler for 
 # to test for dependencies/versions/libraries/includes
@@ -192,6 +191,8 @@ if ARGUMENTS.get('CC', None):
 if ARGUMENTS.get('CXX', None):
     env['CXX'] = ARGUMENTS.get('CXX')
 
+Export('env')
+
 env.SConsignFile(joinpath(build_root,"sconsign"))
 
 # Default duplicate option is to use hard links, but this messes up
index 2fae8c25f1a3d6d84d5e7ee3121418a5c4b9a5ac..aebd0da85b3cdaacb84826a9228c952190aa2044 100644 (file)
@@ -28,7 +28,7 @@
 #
 # Authors: Nathan Binkert
 
-import os
+import os, subprocess
 
 Import('env')
 
@@ -88,6 +88,15 @@ ElfFile('libelf_fsize.c')
 ElfFile('libelf_msize.c')
 
 m4env = Environment(ENV=os.environ)
+if env.get('CC'):
+    m4env['CC'] = env['CC']
+if env.get('CXX'):
+    m4env['CXX'] = env['CXX']
+# If we have gm4 use it
+if subprocess.Popen("gm4 --version", shell=True, stdout=subprocess.PIPE, 
+                     stderr=subprocess.STDOUT, close_fds=True).communicate()[0].find('GNU') >= 0:
+    m4env['M4'] = 'gm4'
+
 m4env.Append(M4FLAGS='-DSRCDIR=%s' % Dir('.').path)
 m4env['M4COM'] = '$M4 $M4FLAGS $SOURCES > $TARGET'
 m4env.M4(target=File('libelf_convert.c'),
@@ -101,3 +110,4 @@ m4env.Library('elf', elf_files)
 env.Append(CPPPATH=Dir('.'))
 env.Append(LIBS=['elf'])
 env.Append(LIBPATH=[Dir('.')])
+
index 1ffd26651278d920537e04c74c5185e082cfd950..1b37aa06134c43f9996bb3854fccb92ffc060601 100644 (file)
@@ -26,7 +26,7 @@
 
 
 #include <sys/types.h>
-#include <sys/errno.h>
+#include <errno.h>
 #include <sys/mman.h>
 #include <sys/stat.h>
 
index 0a48d5cb2045692113e053b1b35ee2e9cc6c1797..c169e7e407b5180267160f5c8d60a6703ca5998d 100644 (file)
@@ -45,9 +45,9 @@
  */
 
 typedef struct {
-        u_int32_t      n_namesz;       /* Length of name. */
-        u_int32_t      n_descsz;       /* Length of descriptor. */
-        u_int32_t      n_type;         /* Type of this note. */
+        uint32_t       n_namesz;       /* Length of name. */
+        uint32_t       n_descsz;       /* Length of descriptor. */
+        uint32_t       n_type;         /* Type of this note. */
 } Elf_Note;
 
 /* Indexes into the e_ident array.  Keep synced with
index b89b0eac75d554abb07a84a197853b6d405291bd..6a05fa1d43bfac407f9ad4de1ded94b5bab456c1 100644 (file)
@@ -26,6 +26,9 @@
 
 
 #include <sys/param.h>
+#ifdef __sun
+#include <sys/sysmacros.h>
+#endif
 
 #include <assert.h>
 #include "gelf.h"
index 513789563a3f1531b009d163119040ed0b2c3223..6959d3c3e5cc2622a18f0c2a179b760455e202ba 100644 (file)
@@ -27,6 +27,9 @@
 
 #include <sys/mman.h>
 #include <sys/param.h>
+#ifdef __sun
+#include <sys/sysmacros.h>
+#endif
 
 #include <assert.h>
 #include <errno.h>
index c4c1b6ac52efbce7011a2d82505b549515f527de..9e1280c4729656b97552dd14c77df624e9499e68 100644 (file)
@@ -28,7 +28,7 @@
  * Internal APIs
  */
 
-#include <sys/errno.h>
+#include <errno.h>
 
 #include <assert.h>
 #include "libelf.h"