Changeset 2513 for branches/libc-0.6/src/emx
- Timestamp:
- Feb 3, 2006, 10:48:10 PM (20 years ago)
- Location:
- branches/libc-0.6/src/emx
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/libc-0.6/src/emx/ChangeLog.LIBC
r2511 r2513 2 2 3 3 TODO: open replace on RAMFS fails with error 32! 4 5 2006-02-03: knut st. osmundsen <bird-gccos2-spam@anduin.net> 6 - ld: 7 o #20: use make_temp_file instead of mktemp. This involved including 8 libiberty.h which required some adjustments of duplicate code to work. 4 9 5 10 2006-01-18: knut st. osmundsen <bird-gccos2-spam@anduin.net> -
branches/libc-0.6/src/emx/src/ld/ld.c
r2509 r2513 43 43 #include <string.h> 44 44 #endif 45 #include "libiberty.h" 45 46 46 47 #if !defined(A_OUT) … … 872 873 int cl_refs_allocated; 873 874 874 char *xmalloc (int);875 void *xrealloc (void *, int);875 void *xmalloc (size_t); 876 void *xrealloc (void *, size_t); 876 877 void usage (char *, char *); 877 878 void fatal (char *, ...); … … 899 900 void symtab_init (void); 900 901 void padfile (int, int); 901 char *concat (const char *, const char *, const char *);902 902 char *get_file_name (struct file_entry *); 903 903 symbol *getsym (char *), *getsym_soft (char *); … … 1213 1213 discard_locals = DISCARD_ALL; 1214 1214 break; 1215 1215 1216 1216 case 'y': 1217 1217 { … … 1242 1242 search_dirs[n_search_dirs - 1] = optarg; 1243 1243 break; 1244 1244 1245 1245 case 'M': 1246 1246 write_map = 1; … … 1309 1309 = (struct string_list_element *) 1310 1310 xmalloc (sizeof (struct string_list_element)); 1311 1311 1312 1312 new->str = optarg; 1313 1313 new->next = set_element_prefixes; … … 1392 1392 1393 1393 case 'l': 1394 p->filename = concat ("", optarg, "" );1395 p->local_sym_name = concat ("-l", optarg, "" );1394 p->filename = concat ("", optarg, "", NULL); 1395 p->local_sym_name = concat ("-l", optarg, "", NULL); 1396 1396 p->search_dirs_flag = 1; 1397 1397 p->dynamic = !opt_libs_static; … … 1612 1612 { 1613 1613 int lendir = strlen (search_dirs[i]); 1614 register char *string = xmalloc (lendir + lenname + 4 + 6 + 1);1614 register char *string = (char *) xmalloc (lendir + lenname + 4 + 6 + 1); 1615 1615 int j; 1616 1616 … … 2483 2483 entry->filename); 2484 2484 read_entry_symbols (desc, subentry); 2485 subentry->strings = xmalloc (subentry->strs_size);2485 subentry->strings = (char *) xmalloc (subentry->strs_size); 2486 2486 read_entry_strings (desc, subentry); 2487 2487 … … 3419 3419 if (!demangler || !(nm = (*demangler)(g->name))) 3420 3420 nm = g->name; 3421 errmsg = xmalloc (strlen (errfmt) + strlen (nm) + 1);3421 errmsg = (char *) xmalloc (strlen (errfmt) + strlen (nm) + 1); 3422 3422 sprintf (errmsg, errfmt, nm, data_segment ? "data" : "text"); 3423 3423 if (nm != g->name) … … 3854 3854 void check_exe (void) 3855 3855 { 3856 char *ext, *tmp_dir; 3857 size_t tmp_dir_len; 3856 char *ext; 3858 3857 3859 3858 if (exe_flag) … … 3867 3866 { 3868 3867 touch_filename = output_filename; 3869 exe_filename = concat (output_filename, ".exe", "");3868 exe_filename = concat (output_filename, ".exe", NULL); 3870 3869 } 3871 3870 } … … 3887 3886 /* Create a temporary a.out executable file. */ 3888 3887 3889 tmp_dir = getenv ("TMPDIR"); 3890 if (tmp_dir == NULL) tmp_dir = getenv ("TMP"); 3891 if (tmp_dir == NULL) tmp_dir = getenv ("TEMP"); 3892 if (tmp_dir == NULL) tmp_dir = "."; 3893 tmp_dir_len = strlen (tmp_dir); 3894 output_filename = xmalloc (tmp_dir_len + 10); 3895 memcpy (output_filename, tmp_dir, tmp_dir_len); 3896 if (tmp_dir_len != 0 && strchr ("\\/:", tmp_dir[tmp_dir_len-1]) == NULL) 3897 output_filename[tmp_dir_len++] = '\\'; 3898 strcpy (output_filename + tmp_dir_len, "ldXXXXXX"); 3899 if (mktemp (output_filename) == NULL) 3900 fatal ("mktemp(\"%s\") failed", output_filename); 3888 output_filename = make_temp_file ("ldXXXXXX"); 3901 3889 3902 3890 if (rsxnt_linked != EMX_DEFAULT && strip_symbols != STRIP_NONE) /* RSXNT */ … … 5051 5039 if (strncmp (tmp, "-l", 2) != 0 5052 5040 && (len < 2 || strcmp (tmp+len-2, ".o") != 0)) 5053 tmp = concat (tmp, ".o", ""); /* Needed by GDB */5041 tmp = concat (tmp, ".o", NULL); /* Needed by GDB */ 5054 5042 nl.n_un.n_strx = assign_string_table_index (tmp); 5055 5043 } … … 5397 5385 5398 5386 if (errno < sys_nerr) 5399 s = concat ("", sys_errlist[errno], " for %s" );5387 s = concat ("", sys_errlist[errno], " for %s", NULL); 5400 5388 else 5401 5389 s = "cannot open %s"; … … 5413 5401 5414 5402 if (errno < sys_nerr) 5415 s = concat ("", sys_errlist[errno], " for " );5403 s = concat ("", sys_errlist[errno], " for ", NULL); 5416 5404 else 5417 5405 s = "cannot open "; … … 5474 5462 } 5475 5463 5476 /* Return a newly-allocated string5477 whose contents concatenate the strings S1, S2, S3. */5478 5479 char *5480 concat (s1, s2, s3)5481 const char *s1, *s2, *s3;5482 {5483 register int len1 = strlen (s1), len2 = strlen (s2), len3 = strlen (s3);5484 register char *result = (char *) xmalloc (len1 + len2 + len3 + 1);5485 5486 strcpy (result, s1);5487 strcpy (result + len1, s2);5488 strcpy (result + len1 + len2, s3);5489 result[len1 + len2 + len3] = 0;5490 5491 return result;5492 }5493 5494 5464 /* Parse the string ARG using scanf format FORMAT, and return the result. 5495 5465 If it does not parse, report fatal error … … 5508 5478 /* Like malloc but get fatal error if memory is exhausted. */ 5509 5479 5510 char*5480 void * 5511 5481 xmalloc (size) 5512 int size;5482 size_t size; 5513 5483 { 5514 5484 register char *result = malloc (size); … … 5523 5493 xrealloc (ptr, size) 5524 5494 void *ptr; 5525 int size;5495 size_t size; 5526 5496 { 5527 5497 register char *result = realloc (ptr, size); … … 5684 5654 */ 5685 5655 pName = (struct lx_tmp *)xmalloc(sizeof(*pName)); 5686 pName->name = psz = xmalloc(_MAX_PATH);5656 pName->name = psz = (char *)xmalloc(_MAX_PATH); 5687 5657 if (!make_tempfile(psz, "lddef", ".def")) 5688 5658 {
Note:
See TracChangeset
for help on using the changeset viewer.