update from main archive 960906
authordrepper <drepper>
Sat, 7 Sep 1996 04:08:41 +0000 (04:08 +0000)
committerdrepper <drepper>
Sat, 7 Sep 1996 04:08:41 +0000 (04:08 +0000)
sysdeps/generic/gnu/types.h
sysdeps/generic/prof-freq.c
sysdeps/i386/dl-machine.h

index decd26c..614252a 100644 (file)
@@ -83,5 +83,8 @@ typedef unsigned long __fd_mask;
 #define        __FD_CLR(d, set)        ((set)->fds_bits[__FDELT(d)] &= ~__FDMASK(d))
 #define        __FD_ISSET(d, set)      ((set)->fds_bits[__FDELT(d)] & __FDMASK(d))
 
+#ifdef __USE_SVID
+typedef long int key_t;
+#endif
 
 #endif /* gnu/types.h */
index 4e952e7..c69b43e 100644 (file)
@@ -55,5 +55,62 @@ __profile_frequency ()
     return 0;
   return (1000000 / tim.it_interval.tv_usec);
 }
+/* Return frequency of ticks reported by profil.  Generic version. */
+/*-
+ * Copyright (c) 1983, 1992, 1993
+ *     The Regents of the University of California.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by the University of
+ *     California, Berkeley and its contributors.
+ * 4. Neither the name of the University nor the names of its contributors
+ *    may be used to endorse or promote products derived from this software
+ *    without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+ * SUCH DAMAGE.
+ */
+
+
+#include <sys/types.h>
+#include <sys/time.h>
+
+int
+__profile_frequency ()
+{
+  /*
+   * Discover the tick frequency of the machine if something goes wrong,
+   * we return 0, an impossible hertz.
+   */
+  struct itimerval tim;
+
+  tim.it_interval.tv_sec = 0;
+  tim.it_interval.tv_usec = 1;
+  tim.it_value.tv_sec = 0;
+  tim.it_value.tv_usec = 0;
+  setitimer(ITIMER_REAL, &tim, 0);
+  setitimer(ITIMER_REAL, 0, &tim);
+  if (tim.it_interval.tv_usec < 2)
+    return 0;
+  return (1000000 / tim.it_interval.tv_usec);
+}
 
 
index 83b6f8d..5bd0f82 100644 (file)
@@ -133,7 +133,7 @@ _dl_start_user:\n\
        # See if we were run as a command with the executable file\n\
        # name as an extra leading argument.\n\
        movl _dl_skip_args@GOT(%ebx), %eax\n\
-       movl (%eax),%eax\n\
+       movl (%eax), %eax\n\
        # Pop the original argument count.\n\
        popl %ecx\n\
        # Subtract _dl_skip_args from it.\n\
@@ -151,7 +151,7 @@ _dl_start_user:\n\
        call _dl_init_next@PLT\n\
        addl $4, %esp # Pop argument.\n\
        # Check for zero return, when out of initializers.\n\
-       testl %eax,%eax\n\
+       testl %eax, %eax\n\
        jz 1f\n\
        # Call the shared object initializer function.\n\
        # NOTE: We depend only on the registers (%ebx, %esi and %edi)\n\
@@ -164,7 +164,8 @@ _dl_start_user:\n\
        # Loop to call _dl_init_next for the next initializer.\n\
        jmp 0b\n\
 1:     # Clear the startup flag.\n\
-       movl $0, _dl_starting_up@GOT(%ebx)\n\
+       movl _dl_starting_up@GOT(%ebx), %eax\n\
+       movl $0, (%eax)\n\
        # Pass our finalizer function to the user in %edx, as per ELF ABI.\n\
        movl _dl_fini@GOT(%ebx), %edx\n\
        # Jump to the user's entry point.\n\