10 |
unexec (char *new_name, char *old_name, unsigned int data_start, |
unexec (char *new_name, char *old_name, unsigned int data_start, |
11 |
unsigned int bss_start, unsigned int entry_address) |
unsigned int bss_start, unsigned int entry_address) |
12 |
{ |
{ |
13 |
if (dldump (0, new_name, RTLD_MEMORY)) |
Lisp_Object data; |
14 |
report_file_error ("Cannot unexec", Fcons (build_string (new_name), Qnil)); |
Lisp_Object errstring; |
15 |
|
|
16 |
return 0; |
if (! dldump (0, new_name, RTLD_MEMORY)) |
17 |
|
return 0; |
18 |
|
|
19 |
|
data = Fcons (build_string (new_name), Qnil); |
20 |
|
synchronize_system_messages_locale (); |
21 |
|
errstring = code_convert_string_norecord (build_string (dlerror ()), |
22 |
|
Vlocale_coding_system, 0); |
23 |
|
|
24 |
|
/* System error messages are capitalized. Downcase the initial |
25 |
|
unless it is followed by a slash. */ |
26 |
|
if (SREF (errstring, 1) != '/') |
27 |
|
SSET (errstring, 0, DOWNCASE (SREF (errstring, 0))); |
28 |
|
|
29 |
|
Fsignal (Qfile_error, |
30 |
|
Fcons (build_string ("Cannot unexec"), Fcons (errstring, data))); |
31 |
} |
} |