Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Sep 1998 12:59:42 +1000
From:      David Dawes <dawes@rf900.physics.usyd.edu.au>
To:        current@FreeBSD.ORG
Subject:   imake autodetecting the binary format
Message-ID:  <19980927125942.Y22169@rf900.physics.usyd.edu.au>

next in thread | raw e-mail | index | archive | help
I'm planning to add the patch included below to imake so that it can
auto-detect the binary format at runtime.  Together with this, the
following would be added to FreeBSD.cf:

#ifndef UseElfFormat
#define UseElfFormat		DefaultToElfFormat
#endif

If anyone sees any problems with this, let me know.  I don't need to
hear comments about how gross this might appear to be.  Also, I don't think
calling getobjformat() is an option.

David
--
*** imake.c	1998/03/01 00:34:54	3.13.2.16
--- xc/config/imake/imake.c	1998/09/27 02:50:27
***************
*** 968,973 ****
--- 968,1000 ----
  }
  #endif
  
+ #ifdef __FreeBSD__
+ static void
+ get_binary_format(FILE *inFile)
+ {
+   int mib[2];
+   size_t len;
+   int osrel = 0;
+   FILE *objprog = NULL;
+   int iself = 0;
+   char buf[10];
+ 
+   mib[0] = CTL_KERN;
+   mib[1] = KERN_OSRELDATE;
+   len = sizeof(osrel);
+   sysctl(mib, 2, &osrel, &len, NULL, 0);
+   if (osrel >= 300004 &&
+       (objprog = popen("objformat", "r")) != NULL &&
+       fgets(buf, sizeof(buf), objprog) != NULL &&
+       strncmp(buf, "elf", 3) == 0)
+     iself = 1;
+   if (objprog)
+     pclose(objprog);
+ 
+   fprintf(inFile, "#define DefaultToElfFormat %s\n", iself ? "YES" : "NO");
+ }
+ #endif
+ 
  #ifndef PATH_MAX
  #define PATH_MAX 1024
  #endif
***************
*** 1074,1079 ****
--- 1101,1109 ----
      get_ld_version(inFile);
  #endif
      get_gcc_incdir(inFile);
+ #ifdef __FreeBSD__
+     get_binary_format(inFile);
+ #endif
  #endif /* WIN32 */
  	return FALSE;
  }

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?19980927125942.Y22169>