Changeset 9ed245 in git
- Timestamp:
- May 12, 2005, 2:47:14 PM (19 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- accd6a78454959d4d30cfd2c78391dbc8490b47a
- Parents:
- 6e1ea4ddc204fe0037c0f5bf7a91dde2f70a982f
- Location:
- kernel
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/mod_raw.cc
r6e1ea4d r9ed245 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: mod_raw.cc,v 1. 6 2005-05-12 11:51:32Singular Exp $ */4 /* $Id: mod_raw.cc,v 1.7 2005-05-12 12:47:14 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: machine depend code for dynamic modules … … 13 13 14 14 #include <stdio.h> 15 #include <string.h> 16 #include <ctype.h> 17 #include <sys/stat.h> 18 15 19 16 20 #include "mod2.h" … … 20 24 #endif 21 25 22 #if defined(HAVE_DL)23 26 #include "mod_raw.h" 24 27 #include "febase.h" 28 29 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ 30 #define BYTES_TO_CHECK 7 31 32 lib_types type_of_LIB(char *newlib, char *libnamebuf) 33 { 34 char buf[BYTES_TO_CHECK+1]; /* one extra for terminating '\0' */ 35 struct stat sb; 36 int nbytes = 0; 37 int ret; 38 lib_types LT=LT_NONE; 39 40 FILE * fp = feFopen( newlib, "r", libnamebuf, FALSE ); 41 ret = stat(libnamebuf, &sb); 42 43 if (fp==NULL) 44 { 45 return LT_NOTFOUND; 46 } 47 if((sb.st_mode & S_IFMT) != S_IFREG) 48 { 49 goto lib_type_end; 50 } 51 if ((nbytes = fread((char *)buf, sizeof(char), BYTES_TO_CHECK, fp)) == -1) 52 { 53 goto lib_type_end; 54 /*NOTREACHED*/ 55 } 56 if (nbytes == 0) 57 goto lib_type_end; 58 else 59 { 60 buf[nbytes++] = '\0'; /* null-terminate it */ 61 } 62 if( (strncmp(buf, "\177ELF", 4)==0)) /* generic ELF */ 63 { 64 LT = LT_ELF; 65 //omFree(newlib); 66 //newlib = omStrDup(libnamebuf); 67 goto lib_type_end; 68 } 69 if( (strncmp(buf, "\02\020\01\016\05\022@", 7)==0)) 70 { 71 LT = LT_HPUX; 72 //omFree(newlib); 73 //newlib = omStrDup(libnamebuf); 74 goto lib_type_end; 75 } 76 if(isprint(buf[0]) || buf[0]=='\n') 77 { LT = LT_SINGULAR; goto lib_type_end; } 78 79 lib_type_end: 80 fclose(fp); 81 return LT; 82 } 83 /*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*/ 84 #if defined(HAVE_DL) 25 85 26 86 /***************************************************************************** -
kernel/mod_raw.h
r6e1ea4d r9ed245 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: mod_raw.h,v 1. 1.1.1 2003-10-06 12:15:57Singular Exp $ */6 /* $Id: mod_raw.h,v 1.2 2005-05-12 12:47:14 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT: machine depend code for dynamic modules … … 13 13 * dunl_close() 14 14 */ 15 16 typedef enum { LT_NONE, LT_NOTFOUND, LT_SINGULAR, LT_ELF, LT_HPUX} lib_types; 17 18 lib_types type_of_LIB(char *newlib, char *fullname); 15 19 16 20 #if defined(HAVE_DL)
Note: See TracChangeset
for help on using the changeset viewer.