internal compiler error: in named_section_flags, at varasm.c:412

Christian Daudt csd_ob@daudt.org
Sat Feb 1 01:28:00 GMT 2003


Hi,
 In trying to set up an environment for x86_64, I've run into the the error 
above in compiling the glibc (set for x86_64-unknown-linux crosscompile from 
i686-pc-linux-gnu host as suggested in the x86-64.org website).
 I have latest cvs sources from the gcc-3_3-branch. I've tracked the error 
down to being caused by the fact that the define HAVE_LD_RO_RW_SECTION_MIXING 
is being set to 1 by the configure scripts, and because of that  the 
default_eh_frame_section function (in dwarf2out.c) is calling 
named_section_flags with flags that varasm.c doesn't like (because they 
differ from previous calls). 
 I found that manually removing that HAVE_LD_RO_RW_SECTION_MIXING define 
causes everything to compile ok and intuitively it seems to me from the 
comments that that define shouldn't be set for the x86_64 tools, but I don't 
know enough about gcc to know that for sure. 
 Anyone know what the proper fix for this would be?

 thanks,
   csd

PS: I've attached the soinit.c and soinit.E pre-proc files that caused the 
error.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: soinit.c
Type: text/x-csrc
Size: 2594 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-bugs/attachments/20030201/cab71ca3/attachment.bin>
-------------- next part --------------
# 1 "soinit.c"
# 1 "<built-in>"
# 1 "<command line>"






# 1 "../include/libc-symbols.h" 1
# 54 "../include/libc-symbols.h"
# 1 "/home/csd/dvl3/glibc/build/config.h" 1
# 55 "../include/libc-symbols.h" 2
# 8 "<command line>" 2
# 1 "soinit.c"





# 1 "../include/libc-internal.h" 1






# 1 "../sysdeps/x86_64/hp-timing.h" 1

# 1 "../sysdeps/i386/i686/hp-timing.h" 1
# 24 "../sysdeps/i386/i686/hp-timing.h"
# 1 "../include/string.h" 1


# 1 "../include/sys/types.h" 1
# 1 "../posix/sys/types.h" 1
# 26 "../posix/sys/types.h"
# 1 "../include/features.h" 1
# 283 "../include/features.h"
# 1 "../include/sys/cdefs.h" 1
# 1 "../misc/sys/cdefs.h" 1
# 2 "../include/sys/cdefs.h" 2
# 284 "../include/features.h" 2
# 27 "../posix/sys/types.h" 2



# 1 "../sysdeps/unix/sysv/linux/x86_64/bits/types.h" 1
# 29 "../sysdeps/unix/sysv/linux/x86_64/bits/types.h"
# 1 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/stddef.h" 1 3 4
# 213 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/stddef.h" 3 4
typedef long unsigned int size_t;
# 30 "../sysdeps/unix/sysv/linux/x86_64/bits/types.h" 2
# 1 "../sysdeps/x86_64/bits/wordsize.h" 1
# 31 "../sysdeps/unix/sysv/linux/x86_64/bits/types.h" 2


typedef unsigned char __u_char;
typedef unsigned short int __u_short;
typedef unsigned int __u_int;
typedef unsigned long int __u_long;

typedef unsigned long int __u_quad_t;
typedef long int __quad_t;
# 55 "../sysdeps/unix/sysv/linux/x86_64/bits/types.h"
typedef signed char __int8_t;
typedef unsigned char __uint8_t;
typedef signed short int __int16_t;
typedef unsigned short int __uint16_t;
typedef signed int __int32_t;
typedef unsigned int __uint32_t;

typedef signed long int __int64_t;
typedef unsigned long int __uint64_t;






typedef __quad_t *__qaddr_t;


typedef __uint64_t __dev_t;



typedef __uint32_t __uid_t;
typedef __uint32_t __gid_t;

typedef __uint64_t __ino_t;
typedef __uint64_t __ino64_t;




typedef __uint32_t __mode_t;

typedef __uint64_t __nlink_t;
typedef __int64_t __off_t;
typedef __quad_t __loff_t;
typedef __loff_t __off64_t;






typedef __int32_t __pid_t;

typedef __int64_t __ssize_t;
typedef __uint64_t __rlim_t;
typedef __uint64_t __rlim64_t;
typedef __int64_t __blkcnt_t;
typedef __int64_t __blkcnt64_t;
typedef __uint64_t __fsblkcnt_t;
typedef __uint64_t __fsblkcnt64_t;
typedef __uint64_t __fsfilcnt_t;
typedef __uint64_t __fsfilcnt64_t;
typedef __uint32_t __id_t;
# 123 "../sysdeps/unix/sysv/linux/x86_64/bits/types.h"
typedef struct
  {
    int __val[2];
  } __fsid_t;


typedef int __daddr_t;
typedef char *__caddr_t;
typedef long int __time_t;
typedef unsigned int __useconds_t;
typedef long int __suseconds_t;
typedef long int __swblk_t;
typedef long int __clock_t;
typedef int __key_t;


typedef int __clockid_t;


typedef int __timer_t;



typedef int __ipc_pid_t;





typedef long int __blksize_t;
# 163 "../sysdeps/unix/sysv/linux/x86_64/bits/types.h"
typedef int __t_scalar_t;
typedef unsigned int __t_uscalar_t;







typedef long int __intptr_t;





typedef unsigned int __socklen_t;



# 1 "../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h" 1
# 23 "../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h"
# 1 "../sysdeps/unix/sysv/linux/bits/sched.h" 1
# 68 "../sysdeps/unix/sysv/linux/bits/sched.h"
struct __sched_param
  {
    int __sched_priority;
  };
# 24 "../linuxthreads/sysdeps/pthread/bits/pthreadtypes.h" 2


struct _pthread_fastlock
{
  long int __status;
  int __spinlock;

};



typedef struct _pthread_descr_struct *_pthread_descr;





typedef struct __pthread_attr_s
{
  int __detachstate;
  int __schedpolicy;
  struct __sched_param __schedparam;
  int __inheritsched;
  int __scope;
  size_t __guardsize;
  int __stackaddr_set;
  void *__stackaddr;
  size_t __stacksize;
} pthread_attr_t;



typedef struct
{
  struct _pthread_fastlock __c_lock;
  _pthread_descr __c_waiting;
} pthread_cond_t;



typedef struct
{
  int __dummy;
} pthread_condattr_t;


typedef unsigned int pthread_key_t;





typedef struct
{
  int __m_reserved;
  int __m_count;
  _pthread_descr __m_owner;
  int __m_kind;
  struct _pthread_fastlock __m_lock;
} pthread_mutex_t;



typedef struct
{
  int __mutexkind;
} pthread_mutexattr_t;



typedef int pthread_once_t;




typedef struct _pthread_rwlock_t
{
  struct _pthread_fastlock __rw_lock;
  int __rw_readers;
  _pthread_descr __rw_writer;
  _pthread_descr __rw_read_waiting;
  _pthread_descr __rw_write_waiting;
  int __rw_kind;
  int __rw_pshared;
} pthread_rwlock_t;



typedef struct
{
  int __lockkind;
  int __pshared;
} pthread_rwlockattr_t;




typedef volatile int pthread_spinlock_t;


typedef struct {
  struct _pthread_fastlock __ba_lock;
  int __ba_required;
  int __ba_present;
  _pthread_descr __ba_waiting;
} pthread_barrier_t;


typedef struct {
  int __pshared;
} pthread_barrierattr_t;





typedef unsigned long int pthread_t;
# 183 "../sysdeps/unix/sysv/linux/x86_64/bits/types.h" 2
# 31 "../posix/sys/types.h" 2



typedef __u_char u_char;
typedef __u_short u_short;
typedef __u_int u_int;
typedef __u_long u_long;
typedef __quad_t quad_t;
typedef __u_quad_t u_quad_t;
typedef __fsid_t fsid_t;




typedef __loff_t loff_t;



typedef __ino_t ino_t;






typedef __ino64_t ino64_t;




typedef __dev_t dev_t;




typedef __gid_t gid_t;




typedef __mode_t mode_t;




typedef __nlink_t nlink_t;




typedef __uid_t uid_t;





typedef __off_t off_t;






typedef __off64_t off64_t;




typedef __pid_t pid_t;




typedef __id_t id_t;




typedef __ssize_t ssize_t;





typedef __daddr_t daddr_t;
typedef __caddr_t caddr_t;





typedef __key_t key_t;
# 132 "../posix/sys/types.h"
# 1 "../include/time.h" 1


# 1 "../time/time.h" 1
# 59 "../time/time.h"
typedef __clock_t clock_t;
# 70 "../time/time.h"
typedef __time_t time_t;
# 82 "../time/time.h"
typedef __clockid_t clockid_t;
# 94 "../time/time.h"
typedef __timer_t timer_t;
# 4 "../include/time.h" 2
# 133 "../posix/sys/types.h" 2



typedef __useconds_t useconds_t;



typedef __suseconds_t suseconds_t;





# 1 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/stddef.h" 1 3 4
# 147 "../posix/sys/types.h" 2



typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 190 "../posix/sys/types.h"
typedef int int8_t __attribute__ ((__mode__ (__QI__)));
typedef int int16_t __attribute__ ((__mode__ (__HI__)));
typedef int int32_t __attribute__ ((__mode__ (__SI__)));
typedef int int64_t __attribute__ ((__mode__ (__DI__)));


typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));

typedef int register_t __attribute__ ((__mode__ (__word__)));
# 212 "../posix/sys/types.h"
# 1 "../include/endian.h" 1
# 1 "../string/endian.h" 1
# 37 "../string/endian.h"
# 1 "../sysdeps/x86_64/bits/endian.h" 1
# 38 "../string/endian.h" 2
# 2 "../include/endian.h" 2
# 213 "../posix/sys/types.h" 2


# 1 "../include/sys/select.h" 1

# 1 "../misc/sys/select.h" 1
# 31 "../misc/sys/select.h"
# 1 "../sysdeps/generic/bits/select.h" 1
# 32 "../misc/sys/select.h" 2


# 1 "../sysdeps/unix/sysv/linux/bits/sigset.h" 1
# 23 "../sysdeps/unix/sysv/linux/bits/sigset.h"
typedef int __sig_atomic_t;




typedef struct
  {
    unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
  } __sigset_t;
# 35 "../misc/sys/select.h" 2



typedef __sigset_t sigset_t;





# 1 "../include/time.h" 1


# 1 "../time/time.h" 1
# 106 "../time/time.h"
struct timespec
  {
    __time_t tv_sec;
    long int tv_nsec;
  };
# 4 "../include/time.h" 2
# 45 "../misc/sys/select.h" 2

# 1 "../sysdeps/unix/sysv/linux/x86_64/bits/time.h" 1
# 67 "../sysdeps/unix/sysv/linux/x86_64/bits/time.h"
struct timeval
  {
    __time_t tv_sec;
    __suseconds_t tv_usec;
  };
# 47 "../misc/sys/select.h" 2
# 55 "../misc/sys/select.h"
typedef long int __fd_mask;







typedef struct
  {



    __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];





  } fd_set;






typedef __fd_mask fd_mask;
# 95 "../misc/sys/select.h"







extern int select (int __nfds, fd_set *__restrict __readfds,
                   fd_set *__restrict __writefds,
                   fd_set *__restrict __exceptfds,
                   struct timeval *__restrict __timeout) ;





extern int pselect (int __nfds, fd_set *__restrict __readfds,
                    fd_set *__restrict __writefds,
                    fd_set *__restrict __exceptfds,
                    const struct timespec *__restrict __timeout,
                    const __sigset_t *__restrict __sigmask) ;



# 3 "../include/sys/select.h" 2


extern int __pselect (int __nfds, fd_set *__readfds,
                      fd_set *__writefds, fd_set *__exceptfds,
                      const struct timespec *__timeout,
                      const __sigset_t *__sigmask);

extern int __select (int __nfds, fd_set *__restrict __readfds,
                     fd_set *__restrict __writefds,
                     fd_set *__restrict __exceptfds,
                     struct timeval *__restrict __timeout);
# 216 "../posix/sys/types.h" 2


# 1 "../sysdeps/unix/sysv/linux/sys/sysmacros.h" 1
# 219 "../posix/sys/types.h" 2




typedef __blksize_t blksize_t;






typedef __blkcnt_t blkcnt_t;



typedef __fsblkcnt_t fsblkcnt_t;



typedef __fsfilcnt_t fsfilcnt_t;
# 257 "../posix/sys/types.h"
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;



# 2 "../include/sys/types.h" 2
# 4 "../include/string.h" 2

extern void *__memccpy (void *__dest, __const void *__src,
                          int __c, size_t __n);

extern size_t __strnlen (__const char *__string, size_t __maxlen)
     __attribute__ ((__pure__));

extern char *__strsep (char **__stringp, __const char *__delim);

extern int __strverscmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));

extern int __strncasecmp (__const char *__s1, __const char *__s2,
                          size_t __n)
     __attribute__ ((__pure__));

extern int __strcasecmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));

extern char *__strcasestr (__const char *__haystack, __const char *__needle)
     __attribute__ ((__pure__));

extern char *__strdup (__const char *__string)
     __attribute__ ((__malloc__));
extern char *__strndup (__const char *__string, size_t __n)
     __attribute__ ((__malloc__));

extern void *__rawmemchr (__const void *__s, int __c)
     __attribute__ ((__pure__));

extern char *__strchrnul (__const char *__s, int __c)
     __attribute__ ((__pure__));

extern void *__memrchr (__const void *__s, int __c, size_t __n)
     __attribute__ ((__pure__));

extern void *__memchr (__const void *__s, int __c, size_t __n)
     __attribute__ ((__pure__));

extern int __ffs (int __i) __attribute__ ((const));

extern char *__strerror_r (int __errnum, char *__buf, size_t __buflen);



# 1 "../string/string.h" 1
# 28 "../string/string.h"





# 1 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/stddef.h" 1 3 4
# 34 "../string/string.h" 2



extern void *memcpy (void *__restrict __dest,
                     __const void *__restrict __src, size_t __n) ;


extern void *memmove (void *__dest, __const void *__src, size_t __n)
     ;





extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
                      int __c, size_t __n)
     ;




extern void *memset (void *__s, int __c, size_t __n) ;


extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
     __attribute__ ((__pure__));


extern void *memchr (__const void *__s, int __c, size_t __n)
      __attribute__ ((__pure__));




extern void *rawmemchr (__const void *__s, int __c) __attribute__ ((__pure__));


extern void *memrchr (__const void *__s, int __c, size_t __n)
      __attribute__ ((__pure__));




extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
     ;

extern char *strncpy (char *__restrict __dest,
                      __const char *__restrict __src, size_t __n) ;


extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
     ;

extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
                      size_t __n) ;


extern int strcmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));

extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
     __attribute__ ((__pure__));


extern int strcoll (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));

extern size_t strxfrm (char *__restrict __dest,
                       __const char *__restrict __src, size_t __n) ;





# 1 "../include/xlocale.h" 1
# 1 "../locale/xlocale.h" 1
# 28 "../locale/xlocale.h"
typedef struct __locale_struct
{

  struct locale_data *__locales[13];


  const unsigned short int *__ctype_b;
  const int *__ctype_tolower;
  const int *__ctype_toupper;
} *__locale_t;
# 2 "../include/xlocale.h" 2
# 109 "../string/string.h" 2


extern int __strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
     __attribute__ ((__pure__));

extern size_t __strxfrm_l (char *__dest, __const char *__src, size_t __n,
                           __locale_t __l) ;




extern char *strdup (__const char *__s) __attribute__ ((__malloc__));






extern char *strndup (__const char *__string, size_t __n)
     __attribute__ ((__malloc__));
# 155 "../string/string.h"
extern char *strchr (__const char *__s, int __c) __attribute__ ((__pure__));

extern char *strrchr (__const char *__s, int __c) __attribute__ ((__pure__));




extern char *strchrnul (__const char *__s, int __c) __attribute__ ((__pure__));




extern size_t strcspn (__const char *__s, __const char *__reject)
     __attribute__ ((__pure__));


extern size_t strspn (__const char *__s, __const char *__accept)
     __attribute__ ((__pure__));

extern char *strpbrk (__const char *__s, __const char *__accept)
     __attribute__ ((__pure__));

extern char *strstr (__const char *__haystack, __const char *__needle)
     __attribute__ ((__pure__));



extern char *strcasestr (__const char *__haystack, __const char *__needle)
     __attribute__ ((__pure__));



extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
     ;



extern char *__strtok_r (char *__restrict __s,
                         __const char *__restrict __delim,
                         char **__restrict __save_ptr) ;

extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
                       char **__restrict __save_ptr) ;






extern void *memmem (__const void *__haystack, size_t __haystacklen,
                     __const void *__needle, size_t __needlelen)
     __attribute__ ((__pure__));



extern void *__mempcpy (void *__restrict __dest,
                        __const void *__restrict __src, size_t __n) ;
extern void *mempcpy (void *__restrict __dest,
                      __const void *__restrict __src, size_t __n) ;




extern size_t strlen (__const char *__s) __attribute__ ((__pure__));




extern size_t strnlen (__const char *__string, size_t __maxlen)
     __attribute__ ((__pure__));




extern char *strerror (int __errnum) ;



extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) ;




extern void __bzero (void *__s, size_t __n) ;



extern void bcopy (__const void *__src, void *__dest, size_t __n) ;


extern void bzero (void *__s, size_t __n) ;


extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
     __attribute__ ((__pure__));


extern char *index (__const char *__s, int __c) __attribute__ ((__pure__));


extern char *rindex (__const char *__s, int __c) __attribute__ ((__pure__));



extern int ffs (int __i) __attribute__ ((__const__));




extern int ffsl (long int __l) __attribute__ ((__const__));

__extension__ extern int ffsll (long long int __ll)
     __attribute__ ((__const__));




extern int strcasecmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));


extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
     __attribute__ ((__pure__));





extern int __strcasecmp_l (__const char *__s1, __const char *__s2,
                           __locale_t __loc) __attribute__ ((__pure__));

extern int __strncasecmp_l (__const char *__s1, __const char *__s2,
                            size_t __n, __locale_t __loc)
     __attribute__ ((__pure__));





extern char *strsep (char **__restrict __stringp,
                     __const char *__restrict __delim) ;




extern int strverscmp (__const char *__s1, __const char *__s2)
     __attribute__ ((__pure__));


extern char *strsignal (int __sig) ;


extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
     ;
extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
     ;



extern char *__stpncpy (char *__restrict __dest,
                        __const char *__restrict __src, size_t __n) ;
extern char *stpncpy (char *__restrict __dest,
                      __const char *__restrict __src, size_t __n) ;


extern char *strfry (char *__string) ;


extern void *memfrob (void *__s, size_t __n) ;






extern char *basename (__const char *__filename) ;
# 357 "../string/string.h"
# 1 "../sysdeps/x86_64/bits/string.h" 1
# 358 "../string/string.h" 2


# 1 "../include/bits/string2.h" 1
# 1 "../string/bits/string2.h" 1
# 52 "../string/bits/string2.h"
# 1 "../include/endian.h" 1
# 53 "../string/bits/string2.h" 2
# 387 "../string/bits/string2.h"
extern void *__rawmemchr (const void *__s, int __c);
# 917 "../string/bits/string2.h"
extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
extern __inline size_t
__strcspn_c1 (__const char *__s, int __reject)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
                                     int __reject2);
extern __inline size_t
__strcspn_c2 (__const char *__s, int __reject1, int __reject2)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
         && __s[__result] != __reject2)
    ++__result;
  return __result;
}

extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
                                     int __reject2, int __reject3);
extern __inline size_t
__strcspn_c3 (__const char *__s, int __reject1, int __reject2,
              int __reject3)
{
  register size_t __result = 0;
  while (__s[__result] != '\0' && __s[__result] != __reject1
         && __s[__result] != __reject2 && __s[__result] != __reject3)
    ++__result;
  return __result;
}
# 974 "../string/bits/string2.h"
extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
extern __inline size_t
__strspn_c1 (__const char *__s, int __accept)
{
  register size_t __result = 0;

  while (__s[__result] == __accept)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
                                    int __accept2);
extern __inline size_t
__strspn_c2 (__const char *__s, int __accept1, int __accept2)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2)
    ++__result;
  return __result;
}

extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
                                    int __accept2, int __accept3);
extern __inline size_t
__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
{
  register size_t __result = 0;

  while (__s[__result] == __accept1 || __s[__result] == __accept2
         || __s[__result] == __accept3)
    ++__result;
  return __result;
}
# 1031 "../string/bits/string2.h"
extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
                                     int __accept2);
extern __inline char *
__strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}

extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
                                     int __accept2, int __accept3);
extern __inline char *
__strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
              int __accept3)
{

  while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
         && *__s != __accept3)
    ++__s;
  return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
}
# 1083 "../string/bits/string2.h"
extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
extern __inline char *
__strtok_r_1c (char *__s, char __sep, char **__nextp)
{
  char *__result;
  if (__s == ((void *)0))
    __s = *__nextp;
  while (*__s == __sep)
    ++__s;
  __result = ((void *)0);
  if (*__s != '\0')
    {
      __result = __s++;
      while (*__s != '\0')
        if (*__s++ == __sep)
          {
            __s[-1] = '\0';
            break;
          }
      *__nextp = __s;
    }
  return __result;
}
# 1115 "../string/bits/string2.h"
extern char *__strsep_g (char **__stringp, __const char *__delim);
# 1133 "../string/bits/string2.h"
extern __inline char *__strsep_1c (char **__s, char __reject);
extern __inline char *
__strsep_1c (char **__s, char __reject)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : strchr (__retval, __reject)))) != ((void *)0))
    *(*__s)++ = '\0';
  return __retval;
}

extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
extern __inline char *
__strsep_2c (char **__s, char __reject1, char __reject2)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0))
    {
      register char *__cp = __retval;
      while (1)
        {
          if (*__cp == '\0')
            {
              __cp = ((void *)0);
          break;
            }
          if (*__cp == __reject1 || *__cp == __reject2)
            {
              *__cp++ = '\0';
              break;
            }
          ++__cp;
        }
      *__s = __cp;
    }
  return __retval;
}

extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
                                   char __reject3);
extern __inline char *
__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
{
  register char *__retval = *__s;
  if (__retval != ((void *)0))
    {
      register char *__cp = __retval;
      while (1)
        {
          if (*__cp == '\0')
            {
              __cp = ((void *)0);
          break;
            }
          if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
            {
              *__cp++ = '\0';
              break;
            }
          ++__cp;
        }
      *__s = __cp;
    }
  return __retval;
}
# 1209 "../string/bits/string2.h"
# 1 "../include/stdlib.h" 1






# 1 "../stdlib/stdlib.h" 1
# 33 "../stdlib/stdlib.h"
# 1 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/stddef.h" 1 3 4
# 34 "../stdlib/stdlib.h" 2


# 527 "../stdlib/stdlib.h"
extern void *malloc (size_t __size) __attribute__ ((__malloc__));

extern void *calloc (size_t __nmemb, size_t __size)
     __attribute__ ((__malloc__));
# 864 "../stdlib/stdlib.h"

# 8 "../include/stdlib.h" 2
# 1210 "../string/bits/string2.h" 2




extern char *__strdup (__const char *__string) __attribute__ ((__malloc__));
# 1233 "../string/bits/string2.h"
extern char *__strndup (__const char *__string, size_t __n)
     __attribute__ ((__malloc__));
# 2 "../include/bits/string2.h" 2
# 361 "../string/string.h" 2




# 50 "../include/string.h" 2
# 25 "../sysdeps/i386/i686/hp-timing.h" 2
# 1 "../sysdeps/unix/sysv/linux/sys/param.h" 1
# 22 "../sysdeps/unix/sysv/linux/sys/param.h"
# 1 "../include/limits.h" 1
# 124 "../include/limits.h"
# 1 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/limits.h" 1 3 4
# 125 "../include/limits.h" 2
# 144 "../include/limits.h"
# 1 "../include/bits/posix1_lim.h" 1
# 1 "../posix/bits/posix1_lim.h" 1
# 126 "../posix/bits/posix1_lim.h"
# 1 "../linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h" 1
# 36 "../linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h"
# 1 "/home/csd/dvl3/x86-64/x86_64-unknown-linux/sys-include/linux/limits.h" 1 3 4
# 37 "../linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h" 2
# 127 "../posix/bits/posix1_lim.h" 2
# 2 "../include/bits/posix1_lim.h" 2
# 145 "../include/limits.h" 2



# 1 "../include/bits/posix2_lim.h" 1
# 1 "../posix/bits/posix2_lim.h" 1
# 2 "../include/bits/posix2_lim.h" 2
# 149 "../include/limits.h" 2



# 1 "../include/bits/xopen_lim.h" 1
# 34 "../include/bits/xopen_lim.h"
# 1 "/home/csd/dvl3/glibc/build/bits/stdio_lim.h" 1
# 35 "../include/bits/xopen_lim.h" 2
# 153 "../include/limits.h" 2
# 23 "../sysdeps/unix/sysv/linux/sys/param.h" 2

# 1 "/home/csd/dvl3/x86-64/x86_64-unknown-linux/sys-include/linux/param.h" 1 3 4



# 1 "/home/csd/dvl3/x86-64/x86_64-unknown-linux/sys-include/asm/param.h" 1 3 4
# 5 "/home/csd/dvl3/x86-64/x86_64-unknown-linux/sys-include/linux/param.h" 2 3 4
# 25 "../sysdeps/unix/sysv/linux/sys/param.h" 2
# 42 "../sysdeps/unix/sysv/linux/sys/param.h"
# 1 "../include/sys/types.h" 1
# 43 "../sysdeps/unix/sysv/linux/sys/param.h" 2
# 26 "../sysdeps/i386/i686/hp-timing.h" 2
# 1 "../stdio-common/_itoa.h" 1
# 22 "../stdio-common/_itoa.h"
# 1 "../include/sys/cdefs.h" 1
# 23 "../stdio-common/_itoa.h" 2






extern char *_itoa (unsigned long long int value, char *buflim,
                    unsigned int base, int upper_case);

static inline char * __attribute__ ((unused))
_itoa_word (unsigned long value, char *buflim,
            unsigned int base, int upper_case)
{
  extern const char _itoa_upper_digits[], _itoa_lower_digits[];
  const char *digits = upper_case ? _itoa_upper_digits : _itoa_lower_digits;
  char *bp = buflim;

  switch (base)
    {







      case 10: do *--bp = digits[value % 10]; while ((value /= 10) != 0); break;
      case 16: do *--bp = digits[value % 16]; while ((value /= 16) != 0); break;
      case 8: do *--bp = digits[value % 8]; while ((value /= 8) != 0); break;
    default:
      do
        *--bp = digits[value % base];
      while ((value /= base) != 0);
    }
  return bp;
}

static inline char * __attribute__ ((unused))
_fitoa_word (unsigned long value, char *buf, unsigned int base, int upper_case)
{
  char tmpbuf[sizeof (value) * 4];
  char *cp = _itoa_word (value, tmpbuf + sizeof (value) * 4, base, upper_case);
  while (cp < tmpbuf + sizeof (value) * 4)
    *buf++ = *cp++;
  return buf;
}

static inline char * __attribute__ ((unused))
_fitoa (unsigned long long value, char *buf, unsigned int base, int upper_case)
{
  char tmpbuf[sizeof (value) * 4];
  char *cp = _itoa (value, tmpbuf + sizeof (value) * 4, base, upper_case);
  while (cp < tmpbuf + sizeof (value) * 4)
    *buf++ = *cp++;
  return buf;
}
# 27 "../sysdeps/i386/i686/hp-timing.h" 2
# 85 "../sysdeps/i386/i686/hp-timing.h"
typedef unsigned long long int hp_timing_t;



extern hp_timing_t __libc_hp_timing_overhead;
# 3 "../sysdeps/x86_64/hp-timing.h" 2
# 8 "../include/libc-internal.h" 2


extern void __libc_init_secure (void);


extern void __libc_global_ctors (void);



extern int __profile_frequency (void);


extern void __cyg_profile_func_enter (void *this_fn, void *call_site);
extern void __cyg_profile_func_exit (void *this_fn, void *call_site);


extern hp_timing_t __get_clockfreq (void);


extern void __libc_freeres (void);
# 7 "soinit.c" 2
# 1 "../include/stdlib.h" 1






# 1 "../stdlib/stdlib.h" 1
# 33 "../stdlib/stdlib.h"
# 1 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/stddef.h" 1 3 4
# 325 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/stddef.h" 3 4
typedef int wchar_t;
# 34 "../stdlib/stdlib.h" 2








# 1 "../sysdeps/unix/sysv/linux/bits/waitflags.h" 1
# 43 "../stdlib/stdlib.h" 2
# 1 "../sysdeps/generic/bits/waitstatus.h" 1
# 63 "../sysdeps/generic/bits/waitstatus.h"
# 1 "../include/endian.h" 1
# 64 "../sysdeps/generic/bits/waitstatus.h" 2

union wait
  {
    int w_status;
    struct
      {

        unsigned int __w_termsig:7;
        unsigned int __w_coredump:1;
        unsigned int __w_retcode:8;
        unsigned int:16;







      } __wait_terminated;
    struct
      {

        unsigned int __w_stopval:8;
        unsigned int __w_stopsig:8;
        unsigned int:16;






      } __wait_stopped;
  };
# 44 "../stdlib/stdlib.h" 2
# 68 "../stdlib/stdlib.h"
typedef union
  {
    union wait *__uptr;
    int *__iptr;
  } __WAIT_STATUS __attribute__ ((__transparent_union__));
# 94 "../stdlib/stdlib.h"
typedef struct
  {
    int quot;
    int rem;
  } div_t;



typedef struct
  {
    long int quot;
    long int rem;
  } ldiv_t;





__extension__ typedef struct
  {
    long long int quot;
    long long int rem;
  } lldiv_t;
# 133 "../stdlib/stdlib.h"
extern size_t __ctype_get_mb_cur_max (void) ;



extern double atof (__const char *__nptr) __attribute__ ((__pure__));

extern int atoi (__const char *__nptr) __attribute__ ((__pure__));

extern long int atol (__const char *__nptr) __attribute__ ((__pure__));



__extension__ extern long long int atoll (__const char *__nptr)
     __attribute__ ((__pure__));



extern double strtod (__const char *__restrict __nptr,
                      char **__restrict __endptr) ;



extern float strtof (__const char *__restrict __nptr,
                     char **__restrict __endptr) ;

extern long double strtold (__const char *__restrict __nptr,
                            char **__restrict __endptr) ;



extern long int strtol (__const char *__restrict __nptr,
                        char **__restrict __endptr, int __base) ;

extern unsigned long int strtoul (__const char *__restrict __nptr,
                                  char **__restrict __endptr, int __base)
     ;



__extension__
extern long long int strtoq (__const char *__restrict __nptr,
                             char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
                                       char **__restrict __endptr, int __base)
     ;






__extension__
extern long long int strtoll (__const char *__restrict __nptr,
                              char **__restrict __endptr, int __base) ;

__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
                                        char **__restrict __endptr, int __base)
     ;
# 211 "../stdlib/stdlib.h"
# 1 "../include/xlocale.h" 1
# 212 "../stdlib/stdlib.h" 2



extern long int __strtol_l (__const char *__restrict __nptr,
                            char **__restrict __endptr, int __base,
                            __locale_t __loc) ;

extern unsigned long int __strtoul_l (__const char *__restrict __nptr,
                                      char **__restrict __endptr,
                                      int __base, __locale_t __loc) ;

__extension__
extern long long int __strtoll_l (__const char *__restrict __nptr,
                                  char **__restrict __endptr, int __base,
                                  __locale_t __loc) ;

__extension__
extern unsigned long long int __strtoull_l (__const char *__restrict __nptr,
                                            char **__restrict __endptr,
                                            int __base, __locale_t __loc)
     ;

extern double __strtod_l (__const char *__restrict __nptr,
                          char **__restrict __endptr, __locale_t __loc)
     ;

extern float __strtof_l (__const char *__restrict __nptr,
                         char **__restrict __endptr, __locale_t __loc) ;

extern long double __strtold_l (__const char *__restrict __nptr,
                                char **__restrict __endptr,
                                __locale_t __loc) ;






extern double __strtod_internal (__const char *__restrict __nptr,
                                 char **__restrict __endptr, int __group)
     ;
extern float __strtof_internal (__const char *__restrict __nptr,
                                char **__restrict __endptr, int __group)
     ;
extern long double __strtold_internal (__const char *__restrict __nptr,
                                       char **__restrict __endptr,
                                       int __group) ;

extern long int __strtol_internal (__const char *__restrict __nptr,
                                   char **__restrict __endptr,
                                   int __base, int __group) ;



extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
                                             char **__restrict __endptr,
                                             int __base, int __group) ;




__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
                                         char **__restrict __endptr,
                                         int __base, int __group) ;



__extension__
extern unsigned long long int __strtoull_internal (__const char *
                                                   __restrict __nptr,
                                                   char **__restrict __endptr,
                                                   int __base, int __group)
     ;







extern __inline double
strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
  return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
strtol (__const char *__restrict __nptr, char **__restrict __endptr,
        int __base)
{
  return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
strtoul (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoul_internal (__nptr, __endptr, __base, 0);
}


extern __inline float
strtof (__const char *__restrict __nptr, char **__restrict __endptr)
{
  return __strtof_internal (__nptr, __endptr, 0);
}
extern __inline long double
strtold (__const char *__restrict __nptr, char **__restrict __endptr)
{
  return __strtold_internal (__nptr, __endptr, 0);
}



__extension__ extern __inline long long int
strtoq (__const char *__restrict __nptr, char **__restrict __endptr,
        int __base)
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtouq (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}



__extension__ extern __inline long long int
strtoll (__const char *__restrict __nptr, char **__restrict __endptr,
         int __base)
{
  return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
strtoull (__const char * __restrict __nptr, char **__restrict __endptr,
          int __base)
{
  return __strtoull_internal (__nptr, __endptr, __base, 0);
}


extern __inline double
atof (__const char *__nptr)
{
  return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
atoi (__const char *__nptr)
{
  return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
atol (__const char *__nptr)
{
  return strtol (__nptr, (char **) ((void *)0), 10);
}


__extension__ extern __inline long long int
atoll (__const char *__nptr)
{
  return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 384 "../stdlib/stdlib.h"
extern char *l64a (long int __n) ;


extern long int a64l (__const char *__s) __attribute__ ((__pure__));


# 1 "../include/sys/types.h" 1
# 391 "../stdlib/stdlib.h" 2






extern long int random (void) ;


extern void srandom (unsigned int __seed) ;





extern char *initstate (unsigned int __seed, char *__statebuf,
                        size_t __statelen) ;



extern char *setstate (char *__statebuf) ;







struct random_data
  {
    int32_t *fptr;
    int32_t *rptr;
    int32_t *state;
    int rand_type;
    int rand_deg;
    int rand_sep;
    int32_t *end_ptr;
  };

extern int random_r (struct random_data *__restrict __buf,
                     int32_t *__restrict __result) ;

extern int srandom_r (unsigned int __seed, struct random_data *__buf) ;

extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
                        size_t __statelen,
                        struct random_data *__restrict __buf) ;

extern int setstate_r (char *__restrict __statebuf,
                       struct random_data *__restrict __buf) ;





extern int rand (void) ;

extern void srand (unsigned int __seed) ;



extern int rand_r (unsigned int *__seed) ;







extern double drand48 (void) ;
extern double erand48 (unsigned short int __xsubi[3]) ;


extern long int lrand48 (void) ;
extern long int nrand48 (unsigned short int __xsubi[3]) ;


extern long int mrand48 (void) ;
extern long int jrand48 (unsigned short int __xsubi[3]) ;


extern void srand48 (long int __seedval) ;
extern unsigned short int *seed48 (unsigned short int __seed16v[3]) ;
extern void lcong48 (unsigned short int __param[7]) ;





struct drand48_data
  {
    unsigned short int __x[3];
    unsigned short int __old_x[3];
    unsigned short int __c;
    unsigned short int __init;
    unsigned long long int __a;
  };


extern int drand48_r (struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;
extern int erand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      double *__restrict __result) ;


extern int lrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int nrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int mrand48_r (struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;
extern int jrand48_r (unsigned short int __xsubi[3],
                      struct drand48_data *__restrict __buffer,
                      long int *__restrict __result) ;


extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
     ;

extern int seed48_r (unsigned short int __seed16v[3],
                     struct drand48_data *__buffer) ;

extern int lcong48_r (unsigned short int __param[7],
                      struct drand48_data *__buffer) ;
# 536 "../stdlib/stdlib.h"
extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__malloc__));

extern void free (void *__ptr) ;



extern void cfree (void *__ptr) ;



# 1 "../include/alloca.h" 1


# 1 "../stdlib/alloca.h" 1
# 25 "../stdlib/alloca.h"
# 1 "/home/csd/dvl3/x86-64/lib/gcc-lib/x86_64-unknown-linux/3.3/include/stddef.h" 1 3 4
# 26 "../stdlib/alloca.h" 2







extern void *alloca (size_t __size) ;






# 4 "../include/alloca.h" 2




extern void *__alloca (size_t __size);
# 547 "../stdlib/stdlib.h" 2




extern void *valloc (size_t __size) __attribute__ ((__malloc__));




extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
     __attribute__ ((__malloc__));



extern void abort (void) __attribute__ ((__noreturn__));



extern int atexit (void (*__func) (void)) ;




extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
     ;





extern void exit (int __status) __attribute__ ((__noreturn__));




extern void _Exit (int __status) __attribute__ ((__noreturn__));




extern char *getenv (__const char *__name) ;



extern char *__secure_getenv (__const char *__name) ;





extern int putenv (char *__string) ;





extern int setenv (__const char *__name, __const char *__value, int __replace)
     ;


extern int unsetenv (__const char *__name) ;






extern int clearenv (void) ;
# 623 "../stdlib/stdlib.h"
extern char *mktemp (char *__template) ;







extern int mkstemp (char *__template) ;
# 640 "../stdlib/stdlib.h"
extern int mkstemp64 (char *__template) ;
# 650 "../stdlib/stdlib.h"
extern char *mkdtemp (char *__template) ;




extern int system (__const char *__command) ;






extern char *canonicalize_file_name (__const char *__name) ;
# 672 "../stdlib/stdlib.h"
extern char *realpath (__const char *__restrict __name,
                       char *__restrict __resolved) ;






typedef int (*__compar_fn_t) (__const void *, __const void *);


typedef __compar_fn_t comparison_fn_t;





extern void *bsearch (__const void *__key, __const void *__base,
                      size_t __nmemb, size_t __size, __compar_fn_t __compar);



extern void qsort (void *__base, size_t __nmemb, size_t __size,
                   __compar_fn_t __compar);



extern int abs (int __x) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__const__));

__extension__ extern long long int llabs (long long int __x)
     __attribute__ ((__const__));






extern div_t div (int __numer, int __denom)
     __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
     __attribute__ ((__const__));

__extension__ extern lldiv_t lldiv (long long int __numer,
                                    long long int __denom)
     __attribute__ ((__const__));
# 728 "../stdlib/stdlib.h"
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign) ;




extern char *gcvt (double __value, int __ndigit, char *__buf) ;




extern char *qecvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qfcvt (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign) ;
extern char *qgcvt (long double __value, int __ndigit, char *__buf) ;




extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
                   int *__restrict __sign, char *__restrict __buf,
                   size_t __len) ;

extern int qecvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;
extern int qfcvt_r (long double __value, int __ndigit,
                    int *__restrict __decpt, int *__restrict __sign,
                    char *__restrict __buf, size_t __len) ;






extern int mblen (__const char *__s, size_t __n) ;


extern int mbtowc (wchar_t *__restrict __pwc,
                   __const char *__restrict __s, size_t __n) ;


extern int wctomb (char *__s, wchar_t __wchar) ;



extern size_t mbstowcs (wchar_t *__restrict __pwcs,
                        __const char *__restrict __s, size_t __n) ;

extern size_t wcstombs (char *__restrict __s,
                        __const wchar_t *__restrict __pwcs, size_t __n)
     ;







extern int rpmatch (__const char *__response) ;
# 808 "../stdlib/stdlib.h"
extern int getsubopt (char **__restrict __optionp,
                      char *__const *__restrict __tokens,
                      char **__restrict __valuep) ;





extern void setkey (__const char *__key) ;







extern int posix_openpt (int __oflag) ;







extern int grantpt (int __fd) ;



extern int unlockpt (int __fd) ;




extern char *ptsname (int __fd) ;






extern int ptsname_r (int __fd, char *__buf, size_t __buflen) ;


extern int getpt (void) ;






extern int getloadavg (double __loadavg[], int __nelem) ;






# 8 "../include/stdlib.h" 2



extern long int __random (void);
extern void __srandom (unsigned int __seed);
extern char *__initstate (unsigned int __seed, char *__statebuf,
                          size_t __statelen);
extern char *__setstate (char *__statebuf);
extern int __random_r (struct random_data *__buf, int32_t *__result);
extern int __srandom_r (unsigned int __seed, struct random_data *__buf);
extern int __initstate_r (unsigned int __seed, char *__statebuf,
                          size_t __statelen, struct random_data *__buf);
extern int __setstate_r (char *__statebuf, struct random_data *__buf);
extern int __rand_r (unsigned int *__seed);
extern int __erand48_r (unsigned short int __xsubi[3],
                        struct drand48_data *__buffer, double *__result);
extern int __nrand48_r (unsigned short int __xsubi[3],
                        struct drand48_data *__buffer,
                        long int *__result);
extern int __jrand48_r (unsigned short int __xsubi[3],
                        struct drand48_data *__buffer,
                        long int *__result);
extern int __srand48_r (long int __seedval,
                        struct drand48_data *__buffer);
extern int __seed48_r (unsigned short int __seed16v[3],
                       struct drand48_data *__buffer);
extern int __lcong48_r (unsigned short int __param[7],
                        struct drand48_data *__buffer);


extern int __drand48_iterate (unsigned short int __xsubi[3],
                              struct drand48_data *__buffer);

extern int __setenv (__const char *__name, __const char *__value,
                     int __replace);
extern int __unsetenv (__const char *__name);
extern int __clearenv (void);
extern char *__canonicalize_file_name (__const char *__name);
extern char *__realpath (__const char *__name, char *__resolved);
extern int __ptsname_r (int __fd, char *__buf, size_t __buflen);
extern int __getpt (void);
extern int __posix_openpt (int __oflag);

extern int __add_to_environ (const char *name, const char *value,
                             const char *combines, int replace);

extern void _quicksort (void *const pbase, size_t total_elems,
                        size_t size, __compar_fn_t cmp);

extern int __on_exit (void (*__func) (int __status, void *__arg), void *__arg);

extern int __cxa_atexit (void (*func) (void *), void *arg, void *d);

extern void __cxa_finalize (void *d);

extern int __posix_memalign (void **memptr, size_t alignment, size_t size)
     __attribute__ ((__malloc__));

extern int __libc_system (const char *line);
# 8 "soinit.c" 2


# 1 "../sysdeps/generic/gccframe.h" 1
# 20 "../sysdeps/generic/gccframe.h"
# 1 "../include/sys/types.h" 1
# 21 "../sysdeps/generic/gccframe.h" 2

struct dwarf_fde;
struct fde_vector;

struct object
{
  void *pc_begin;
  void *tbase;
  void *dbase;
  union {
    struct dwarf_fde *single;
    struct dwarf_fde **array;
    struct fde_vector *sort;
  } u;

  union {
    struct {
      unsigned long sorted : 1;
      unsigned long from_array : 1;
      unsigned long mixed_encoding : 1;
      unsigned long encoding : 8;


      unsigned long count : 21;
    } b;
    size_t i;
  } s;

  struct object *next;
};
# 11 "soinit.c" 2


static void (*const __CTOR_LIST__[1]) (void)
     __attribute__ ((section (".ctors")))
     = { (void (*) (void)) -1 };
static void (*const __DTOR_LIST__[1]) (void)
     __attribute__ ((section (".dtors")))
     = { (void (*) (void)) -1 };

static inline void
run_hooks (void (*const list[]) (void))
{
  while (*++list)
    (**list) ();
}


static char __EH_FRAME_BEGIN__[]
     __attribute__ ((section (".eh_frame")))
     = { };

extern void __register_frame_info (const void *, struct object *);
extern void __register_frame_info_bases (const void *, struct object *,
                                         void *, void *);
extern void __deregister_frame_info (const void *);
extern void __deregister_frame_info_bases (const void *);







void
__libc_global_ctors (void)
{

  run_hooks (__CTOR_LIST__);



  {
    static struct object ob;
# 69 "soinit.c"
    __register_frame_info (__EH_FRAME_BEGIN__, &ob);

  }




}




void _fini (void) __attribute__ ((section (".fini")));
void
_fini (void)
{

  run_hooks (__DTOR_LIST__);





  __deregister_frame_info (__EH_FRAME_BEGIN__);





}


More information about the Gcc-bugs mailing list