Changeset 394d507 in git for libpolys/polys/mod_raw.cc
- Timestamp:
- Oct 31, 2013, 3:33:58 PM (10 years ago)
- Branches:
- (u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
- Children:
- 763c4ddb0c6304b684b9b52b91d2713df4bbb4ee
- Parents:
- b71c90b0435ff0a26e3081e93b19ece9c2262807
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/polys/mod_raw.cc
rb71c90 r394d507 17 17 #include <sys/stat.h> 18 18 #include <errno.h> 19 #include <unistd.h> 19 20 20 21 … … 61 62 void* handle = NULL; 62 63 char* binary_name_so=NULL; 63 64 // try %b/MOD first 65 { 66 const char* bin_dir = feGetResource('b'); 67 const int binary_name_so_length = 6 + strlen(DL_TAIL) 68 + strlen(binary_name) 69 +strlen(DIR_SEPP)*2 70 +strlen(bin_dir); 64 BOOLEAN found=FALSE; 65 66 // try P_PROCS_DIR (%P) 67 char* proc_path = feGetResource('P'); 68 if (proc_path != NULL) 69 { 70 char *p; 71 char *q; 72 p=proc_path; 73 int binary_name_so_length = 3 + strlen(DL_TAIL) + strlen(binary_name) + strlen(DIR_SEPP) + strlen(proc_path); 71 74 binary_name_so = (char *)omAlloc0( binary_name_so_length * sizeof(char) ); 72 snprintf(binary_name_so, binary_name_so_length, "%s%s%s%s%s%s", bin_dir, DIR_SEPP,"MOD",DIR_SEPP,binary_name, DL_TAIL); 73 handle = dynl_open(binary_name_so); 74 75 } 76 77 // try P_PROCS_DIR (%P) 78 if (handle == NULL) 79 { 80 const char* proc_dir = feGetResource('P'); 81 if (proc_dir != NULL) 75 while((p!=NULL)&&(*p!='\0')) 82 76 { 83 if (binary_name_so!=NULL) omFree(binary_name_so); 84 const int binary_name_so_length = 3 + strlen(DL_TAIL) + strlen(binary_name) + strlen(DIR_SEPP) + strlen(proc_dir); 85 binary_name_so = (char *)omAlloc0( binary_name_so_length * sizeof(char) ); 86 snprintf(binary_name_so, binary_name_so_length, "%s%s%s%s", proc_dir, DIR_SEPP, binary_name, DL_TAIL); 87 handle = dynl_open(binary_name_so); 77 q=strchr(p,fePathSep); 78 if (q!=NULL) *q='\0'; 79 strcpy(binary_name_so,p); 80 if (q!=NULL) *q=fePathSep; 81 strcat(binary_name_so,DIR_SEPP); 82 strcat(binary_name_so,binary_name); 83 strcat(binary_name_so,DL_TAIL); 84 if(!access(binary_name_so, R_OK)) { found=TRUE; break; } 85 if (q!=NULL) p=q+1; else p=NULL; 88 86 } 87 if (found) handle = dynl_open(binary_name_so); 89 88 } 90 89 91 90 if (handle == NULL && ! warn_handle) 92 91 { 93 Warn("Could not find dynamic library: %s%s (tried%s)",94 binary_name, DL_TAIL,binary_name_so);95 96 97 98 92 Warn("Could not find dynamic library: %s%s (path %s)", 93 binary_name, DL_TAIL,proc_path); 94 if (found) Warn("Error message from system: %s", dynl_error()); 95 if (msg != NULL) Warn("%s", msg); 96 Warn("See the INSTALL section in the Singular manual for details."); 97 warn_handle = TRUE; 99 98 } 100 99 omfree((ADDRESS)binary_name_so );
Note: See TracChangeset
for help on using the changeset viewer.