summaryrefslogtreecommitdiffstats
path: root/cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c
diff options
context:
space:
mode:
Diffstat (limited to 'cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c')
-rw-r--r--cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c b/cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c
index 756549e..efe6c27 100644
--- a/cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c
+++ b/cddl/contrib/opensolaris/tools/ctf/cvt/ctfconvert.c
@@ -46,7 +46,7 @@
const char *progname;
int debug_level = DEBUG_LEVEL;
-static const char *infile = NULL;
+static char *infile = NULL;
static const char *outfile = NULL;
static int dynsym;
@@ -64,10 +64,12 @@ usage(void)
static void
terminate_cleanup(void)
{
+#if !defined(__FreeBSD__)
if (!outfile) {
fprintf(stderr, "Removing %s\n", infile);
unlink(infile);
}
+#endif
}
static void
@@ -77,10 +79,10 @@ handle_sig(int sig)
}
static int
-file_read(tdata_t *td, const char *filename, int ignore_non_c)
+file_read(tdata_t *td, char *filename, int ignore_non_c)
{
- typedef int (*reader_f)(tdata_t *, Elf *, const char *);
- static const reader_f readers[] = {
+ typedef int (*reader_f)(tdata_t *, Elf *, char *);
+ static reader_f readers[] = {
stabs_read,
dw_read,
NULL
@@ -147,15 +149,17 @@ int
main(int argc, char **argv)
{
tdata_t *filetd, *mstrtd;
- char *label = NULL;
+ const char *label = NULL;
int verbose = 0;
int ignore_non_c = 0;
int keep_stabs = 0;
int c;
+#if defined(sun)
sighold(SIGINT);
sighold(SIGQUIT);
sighold(SIGTERM);
+#endif
progname = basename(argv[0]);
@@ -217,9 +221,15 @@ main(int argc, char **argv)
*/
set_terminate_cleanup(terminate_cleanup);
+#if defined(sun)
sigset(SIGINT, handle_sig);
sigset(SIGQUIT, handle_sig);
sigset(SIGTERM, handle_sig);
+#else
+ signal(SIGINT, handle_sig);
+ signal(SIGQUIT, handle_sig);
+ signal(SIGTERM, handle_sig);
+#endif
filetd = tdata_new();
@@ -243,7 +253,6 @@ main(int argc, char **argv)
write_ctf(mstrtd, infile, outfile, dynsym | keep_stabs);
} else {
char *tmpname = mktmpname(infile, ".ctf");
-
write_ctf(mstrtd, infile, tmpname, dynsym | keep_stabs);
if (rename(tmpname, infile) != 0)
terminate("Couldn't rename temp file %s", tmpname);
OpenPOWER on IntegriCloud