about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog9
-rw-r--r--misc/progname.c7
-rw-r--r--sysdeps/mach/hurd/setitimer.c2
3 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 88babc2b39..3868aeb5e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+Tue Apr  4 00:48:53 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
+
+	* misc/progname.c (program_invocation_name,
+ 	program_invocation_short_name): Make these initialized data
+ 	definitions.
+
+	* sysdeps/mach/hurd/setitimer.c (fork_itimer): Add self reference
+ 	so gcc doesn't optimize out the function entirely.
+
 Sun Apr  2 13:13:52 1995  Roland McGrath  <roland@churchy.gnu.ai.mit.edu>
 
 	* posix/execvp.c: Don't use stat to search path; just try execv
diff --git a/misc/progname.c b/misc/progname.c
index 265ca5c3a9..d4efac976d 100644
--- a/misc/progname.c
+++ b/misc/progname.c
@@ -21,8 +21,11 @@ Cambridge, MA 02139, USA.  */
 #include <ansidecl.h>
 #include <string.h>
 
-char *program_invocation_name;
-char *program_invocation_short_name;
+/* These must be initialized data definitions.  Common definitions satisfy
+   references to these variables, but do not cause the whole file to be
+   linked in, and so omit the set-up function.  */
+char *program_invocation_name = NULL;
+char *program_invocation_short_name = NULL;
 
 static void
 DEFUN(set_progname, (argc, argv, envp),
diff --git a/sysdeps/mach/hurd/setitimer.c b/sysdeps/mach/hurd/setitimer.c
index 4351c5ea99..4f494a4c6e 100644
--- a/sysdeps/mach/hurd/setitimer.c
+++ b/sysdeps/mach/hurd/setitimer.c
@@ -326,6 +326,8 @@ fork_itimer (void)
   it.it_value = it.it_interval;
 
   setitimer_locked (&it, NULL, NULL);
+
+  (void) &fork_itimer;		/* Avoid gcc optimizing out the function.  */
 }
 text_set_element (_hurd_fork_child_hook, fork_itimer);