Mercurial > emacs
annotate src/unexsol.c @ 47432:16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 12 Sep 2002 03:28:59 +0000 |
parents | 85923ab92112 |
children | d671a35d55f3 |
rev | line source |
---|---|
47190 | 1 /* Trivial unexec for Solaris. */ |
2 | |
3 #include <config.h> | |
4 #include <stdlib.h> | |
5 #include <dlfcn.h> | |
6 | |
7 #include "lisp.h" | |
8 | |
9 int | |
10 unexec (char *new_name, char *old_name, unsigned int data_start, | |
11 unsigned int bss_start, unsigned int entry_address) | |
12 { | |
47432
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
13 Lisp_Object data; |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
14 Lisp_Object errstring; |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
15 |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
16 if (! dldump (0, new_name, RTLD_MEMORY)) |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
17 return 0; |
47190 | 18 |
47432
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
19 data = Fcons (build_string (new_name), Qnil); |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
20 synchronize_system_messages_locale (); |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
21 errstring = code_convert_string_norecord (build_string (dlerror ()), |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
22 Vlocale_coding_system, 0); |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
23 |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
24 /* System error messages are capitalized. Downcase the initial |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
25 unless it is followed by a slash. */ |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
26 if (SREF (errstring, 1) != '/') |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
27 SSET (errstring, 0, DOWNCASE (SREF (errstring, 0))); |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
28 |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
29 Fsignal (Qfile_error, |
16b9af83e7d3
Don't use report_file_error; do it by hand using dlerror.
Richard M. Stallman <rms@gnu.org>
parents:
47190
diff
changeset
|
30 Fcons (build_string ("Cannot unexec"), Fcons (errstring, data))); |
47190 | 31 } |