Bug#307993: CE in gen_subprogram_die at dwarf2out.c:10913 building glibc 2.3.5 with nptl
Package: gcc-3.4
Severity: important
Enabling NTPL support in glibc-2.3.5 for powerpc requires using gcc-3.4
as 3.3 doesn't support __thread on this platform. However, the NPTL
build fails with this internal error.
gcc-3.4 tst-execstack-mod.c -c -std=gnu99 -O2 -O3 -Wall -Winline -Wstrict-prototypes -Wwrite-strings -fstrict-aliasing -g -g1 -pipe -mnew-mnemonics -fpic -I../include -I. -I/home/benh/glibc-2.3.5/build-tree/powerpc-nptl/nptl -I.. -I../libio -I/home/benh/glibc-2.3.5/build-tree/powerpc-nptl -I../sysdeps/powerpc/powerpc32/elf -I../sysdeps/powerpc/elf -I../nptl/sysdeps/unix/sysv/linux/powerpc/powerpc32 -I../nptl/sysdeps/unix/sysv/linux/powerpc -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../nptl/sysdeps/unix/sysv -I../nptl/sysdeps/unix -I../nptl/sysdeps/powerpc -I../sysdeps/unix/sysv/linux/powerpc/powerpc32 -I../sysdeps/unix/sysv/linux/powerpc -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/powerpc -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/powerpc/powerpc32/fpu -I../sysdeps/powerpc/powerpc32 -I../sysdeps/wordsize-32 -I../sysdeps/powerpc/soft-fp -I../sysdeps/powerpc/fpu -I../sysdeps/powerpc -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -nostdinc -isystem /usr/lib/gcc/powerpc-linux/3.4.4/include -isystem /home/benh/glibc-2.3.5/debian/include -D_LIBC_REENTRANT -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DPIC -DSHARED -DNOT_IN_libc=1 -DNOT_IN_libc -o /home/benh/glibc-2.3.5/build-tree/powerpc-nptl/nptl/tst-execstack-mod.os -MD -MP -MF /home/benh/glibc-2.3.5/build-tree/powerpc-nptl/nptl/tst-execstack-mod.os.dt -MT /home/benh/glibc-2.3.5/build-tree/powerpc-nptl/nptl/tst-execstack-mod.os
../elf/tst-execstack-mod.c: In function `tryme':
../elf/tst-execstack-mod.c:24: internal compiler error: in gen_subprogram_die, at dwarf2out.c:10913
I enclosed the .i and .s files
-- System Information:
Debian Release: 3.1
APT prefers unstable
APT policy: (500, 'unstable'), (1, 'experimental')
Architecture: powerpc (ppc)
Kernel: Linux 2.6.12-rc3-gack
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
# 1 "tst-execstack-mod.c"
# 1 "/home/benh/glibc-2.3.5/build-tree/glibc-2.3.5/nptl//"
# 1 "<built-in>"
# 1 "<command line>"
# 17 "<command line>"
# 1 "./../include/libc-symbols.h" 1
# 56 "./../include/libc-symbols.h"
# 1 "/home/benh/glibc-2.3.5/build-tree/powerpc-nptl/config.h" 1
# 57 "./../include/libc-symbols.h" 2
# 874 "./../include/libc-symbols.h"
# 1 "../sysdeps/wordsize-32/symbol-hacks.h" 1
# 875 "./../include/libc-symbols.h" 2
# 18 "<command line>" 2
# 1 "tst-execstack-mod.c"
# 1 "../elf/tst-execstack-mod.c" 1
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stdbool.h" 1 3 4
# 5 "../elf/tst-execstack-mod.c" 2
# 1 "../include/stdio.h" 1
# 1 "../libio/stdio.h" 1
# 28 "../libio/stdio.h"
# 1 "../include/features.h" 1
# 308 "../include/features.h"
# 1 "../include/sys/cdefs.h" 1
# 1 "../misc/sys/cdefs.h" 1
# 4 "../include/sys/cdefs.h" 2
extern void __chk_fail (void) __attribute__ ((__noreturn__));
# 309 "../include/features.h" 2
# 331 "../include/features.h"
# 1 "../include/gnu/stubs.h" 1
# 332 "../include/features.h" 2
# 29 "../libio/stdio.h" 2
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 213 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 3 4
typedef unsigned int size_t;
# 35 "../libio/stdio.h" 2
# 1 "../sysdeps/generic/bits/types.h" 1
# 28 "../sysdeps/generic/bits/types.h"
# 1 "../sysdeps/powerpc/powerpc32/bits/wordsize.h" 1
# 29 "../sysdeps/generic/bits/types.h" 2
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 32 "../sysdeps/generic/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 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;
__extension__ typedef signed long long int __int64_t;
__extension__ typedef unsigned long long int __uint64_t;
__extension__ typedef long long int __quad_t;
__extension__ typedef unsigned long long int __u_quad_t;
# 129 "../sysdeps/generic/bits/types.h"
# 1 "../sysdeps/generic/bits/typesizes.h" 1
# 130 "../sysdeps/generic/bits/types.h" 2
__extension__ typedef __u_quad_t __dev_t;
__extension__ typedef unsigned int __uid_t;
__extension__ typedef unsigned int __gid_t;
__extension__ typedef unsigned long int __ino_t;
__extension__ typedef __u_quad_t __ino64_t;
__extension__ typedef unsigned int __mode_t;
__extension__ typedef unsigned int __nlink_t;
__extension__ typedef long int __off_t;
__extension__ typedef __quad_t __off64_t;
__extension__ typedef int __pid_t;
__extension__ typedef struct { int __val[2]; } __fsid_t;
__extension__ typedef long int __clock_t;
__extension__ typedef unsigned long int __rlim_t;
__extension__ typedef __u_quad_t __rlim64_t;
__extension__ typedef unsigned int __id_t;
__extension__ typedef long int __time_t;
__extension__ typedef unsigned int __useconds_t;
__extension__ typedef long int __suseconds_t;
__extension__ typedef int __daddr_t;
__extension__ typedef long int __swblk_t;
__extension__ typedef int __key_t;
__extension__ typedef int __clockid_t;
__extension__ typedef void * __timer_t;
__extension__ typedef long int __blksize_t;
__extension__ typedef long int __blkcnt_t;
__extension__ typedef __quad_t __blkcnt64_t;
__extension__ typedef unsigned long int __fsblkcnt_t;
__extension__ typedef __u_quad_t __fsblkcnt64_t;
__extension__ typedef unsigned long int __fsfilcnt_t;
__extension__ typedef __u_quad_t __fsfilcnt64_t;
__extension__ typedef int __ssize_t;
typedef __off64_t __loff_t;
typedef __quad_t *__qaddr_t;
typedef char *__caddr_t;
__extension__ typedef int __intptr_t;
__extension__ typedef unsigned int __socklen_t;
# 37 "../libio/stdio.h" 2
typedef struct _IO_FILE FILE;
# 62 "../libio/stdio.h"
typedef struct _IO_FILE __FILE;
# 72 "../libio/stdio.h"
# 1 "../include/libio.h" 1
# 1 "../libio/libio.h" 1
# 32 "../libio/libio.h"
# 1 "../sysdeps/gnu/_G_config.h" 1
# 14 "../sysdeps/gnu/_G_config.h"
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 325 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 3 4
typedef long int wchar_t;
# 354 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 3 4
typedef unsigned int wint_t;
# 15 "../sysdeps/gnu/_G_config.h" 2
# 24 "../sysdeps/gnu/_G_config.h"
# 1 "../include/wchar.h" 1
# 1 "../wcsmbs/wchar.h" 1
# 48 "../wcsmbs/wchar.h"
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 49 "../wcsmbs/wchar.h" 2
# 1 "../sysdeps/generic/bits/wchar.h" 1
# 51 "../wcsmbs/wchar.h" 2
# 76 "../wcsmbs/wchar.h"
typedef struct
{
int __count;
union
{
wint_t __wch;
char __wchb[4];
} __value;
} __mbstate_t;
# 3 "../include/wchar.h" 2
# 25 "../sysdeps/gnu/_G_config.h" 2
typedef struct
{
__off_t __pos;
__mbstate_t __state;
} _G_fpos_t;
typedef struct
{
__off64_t __pos;
__mbstate_t __state;
} _G_fpos64_t;
# 44 "../sysdeps/gnu/_G_config.h"
# 1 "../include/gconv.h" 1
# 1 "../iconv/gconv.h" 1
# 28 "../iconv/gconv.h"
# 1 "../include/wchar.h" 1
# 1 "../wcsmbs/wchar.h" 1
# 48 "../wcsmbs/wchar.h"
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 49 "../wcsmbs/wchar.h" 2
# 3 "../include/wchar.h" 2
# 29 "../iconv/gconv.h" 2
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 32 "../iconv/gconv.h" 2
enum
{
__GCONV_OK = 0,
__GCONV_NOCONV,
__GCONV_NODB,
__GCONV_NOMEM,
__GCONV_EMPTY_INPUT,
__GCONV_FULL_OUTPUT,
__GCONV_ILLEGAL_INPUT,
__GCONV_INCOMPLETE_INPUT,
__GCONV_ILLEGAL_DESCRIPTOR,
__GCONV_INTERNAL_ERROR
};
enum
{
__GCONV_IS_LAST = 0x0001,
__GCONV_IGNORE_ERRORS = 0x0002
};
struct __gconv_step;
struct __gconv_step_data;
struct __gconv_loaded_object;
struct __gconv_trans_data;
typedef int (*__gconv_fct) (struct __gconv_step *, struct __gconv_step_data *,
__const unsigned char **, __const unsigned char *,
unsigned char **, size_t *, int, int);
typedef wint_t (*__gconv_btowc_fct) (struct __gconv_step *, unsigned char);
typedef int (*__gconv_init_fct) (struct __gconv_step *);
typedef void (*__gconv_end_fct) (struct __gconv_step *);
typedef int (*__gconv_trans_fct) (struct __gconv_step *,
struct __gconv_step_data *, void *,
__const unsigned char *,
__const unsigned char **,
__const unsigned char *, unsigned char **,
size_t *);
typedef int (*__gconv_trans_context_fct) (void *, __const unsigned char *,
__const unsigned char *,
unsigned char *, unsigned char *);
typedef int (*__gconv_trans_query_fct) (__const char *, __const char ***,
size_t *);
typedef int (*__gconv_trans_init_fct) (void **, const char *);
typedef void (*__gconv_trans_end_fct) (void *);
struct __gconv_trans_data
{
__gconv_trans_fct __trans_fct;
__gconv_trans_context_fct __trans_context_fct;
__gconv_trans_end_fct __trans_end_fct;
void *__data;
struct __gconv_trans_data *__next;
};
struct __gconv_step
{
struct __gconv_loaded_object *__shlib_handle;
__const char *__modname;
int __counter;
char *__from_name;
char *__to_name;
__gconv_fct __fct;
__gconv_btowc_fct __btowc_fct;
__gconv_init_fct __init_fct;
__gconv_end_fct __end_fct;
int __min_needed_from;
int __max_needed_from;
int __min_needed_to;
int __max_needed_to;
int __stateful;
void *__data;
};
struct __gconv_step_data
{
unsigned char *__outbuf;
unsigned char *__outbufend;
int __flags;
int __invocation_counter;
int __internal_use;
__mbstate_t *__statep;
__mbstate_t __state;
struct __gconv_trans_data *__trans;
};
typedef struct __gconv_info
{
size_t __nsteps;
struct __gconv_step *__steps;
__extension__ struct __gconv_step_data __data [];
} *__gconv_t;
# 2 "../include/gconv.h" 2
# 45 "../sysdeps/gnu/_G_config.h" 2
typedef union
{
struct __gconv_info __cd;
struct
{
struct __gconv_info __cd;
struct __gconv_step_data __data;
} __combined;
} _G_iconv_t;
typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
# 33 "../libio/libio.h" 2
# 53 "../libio/libio.h"
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stdarg.h" 1 3 4
# 43 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stdarg.h" 3 4
typedef __builtin_va_list __gnuc_va_list;
# 54 "../libio/libio.h" 2
# 166 "../libio/libio.h"
struct _IO_jump_t; struct _IO_FILE;
# 176 "../libio/libio.h"
typedef void _IO_lock_t;
struct _IO_marker {
struct _IO_marker *_next;
struct _IO_FILE *_sbuf;
int _pos;
# 199 "../libio/libio.h"
};
enum __codecvt_result
{
__codecvt_ok,
__codecvt_partial,
__codecvt_error,
__codecvt_noconv
};
struct _IO_codecvt
{
void (*__codecvt_destr) (struct _IO_codecvt *);
enum __codecvt_result (*__codecvt_do_out) (struct _IO_codecvt *,
__mbstate_t *,
const wchar_t *,
const wchar_t *,
const wchar_t **, char *,
char *, char **);
enum __codecvt_result (*__codecvt_do_unshift) (struct _IO_codecvt *,
__mbstate_t *, char *,
char *, char **);
enum __codecvt_result (*__codecvt_do_in) (struct _IO_codecvt *,
__mbstate_t *,
const char *, const char *,
const char **, wchar_t *,
wchar_t *, wchar_t **);
int (*__codecvt_do_encoding) (struct _IO_codecvt *);
int (*__codecvt_do_always_noconv) (struct _IO_codecvt *);
int (*__codecvt_do_length) (struct _IO_codecvt *, __mbstate_t *,
const char *, const char *, size_t);
int (*__codecvt_do_max_length) (struct _IO_codecvt *);
_G_iconv_t __cd_in;
_G_iconv_t __cd_out;
};
struct _IO_wide_data
{
wchar_t *_IO_read_ptr;
wchar_t *_IO_read_end;
wchar_t *_IO_read_base;
wchar_t *_IO_write_base;
wchar_t *_IO_write_ptr;
wchar_t *_IO_write_end;
wchar_t *_IO_buf_base;
wchar_t *_IO_buf_end;
wchar_t *_IO_save_base;
wchar_t *_IO_backup_base;
wchar_t *_IO_save_end;
__mbstate_t _IO_state;
__mbstate_t _IO_last_state;
struct _IO_codecvt _codecvt;
wchar_t _shortbuf[1];
const struct _IO_jump_t *_wide_vtable;
};
struct _IO_FILE {
int _flags;
char* _IO_read_ptr;
char* _IO_read_end;
char* _IO_read_base;
char* _IO_write_base;
char* _IO_write_ptr;
char* _IO_write_end;
char* _IO_buf_base;
char* _IO_buf_end;
char *_IO_save_base;
char *_IO_backup_base;
char *_IO_save_end;
struct _IO_marker *_markers;
struct _IO_FILE *_chain;
int _fileno;
int _flags2;
__off_t _old_offset;
unsigned short _cur_column;
signed char _vtable_offset;
char _shortbuf[1];
_IO_lock_t *_lock;
# 315 "../libio/libio.h"
__off64_t _offset;
struct _IO_codecvt *_codecvt;
struct _IO_wide_data *_wide_data;
int _mode;
char _unused2[15 * sizeof (int) - 2 * sizeof (void *)];
};
typedef struct _IO_FILE _IO_FILE;
struct _IO_FILE_plus;
extern struct _IO_FILE_plus _IO_2_1_stdin_;
extern struct _IO_FILE_plus _IO_2_1_stdout_;
extern struct _IO_FILE_plus _IO_2_1_stderr_;
extern _IO_FILE *_IO_stdin __attribute__ ((visibility ("hidden")));
extern _IO_FILE *_IO_stdout __attribute__ ((visibility ("hidden")));
extern _IO_FILE *_IO_stderr __attribute__ ((visibility ("hidden")));
typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
size_t __n);
typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
typedef int __io_close_fn (void *__cookie);
typedef __io_read_fn cookie_read_function_t;
typedef __io_write_fn cookie_write_function_t;
typedef __io_seek_fn cookie_seek_function_t;
typedef __io_close_fn cookie_close_function_t;
typedef struct
{
__io_read_fn *read;
__io_write_fn *write;
__io_seek_fn *seek;
__io_close_fn *close;
} _IO_cookie_io_functions_t;
typedef _IO_cookie_io_functions_t cookie_io_functions_t;
struct _IO_cookie_file;
extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
void *__cookie, _IO_cookie_io_functions_t __fns);
extern int __underflow (_IO_FILE *) __attribute__ ((__nothrow__));
extern int __uflow (_IO_FILE *) __attribute__ ((__nothrow__));
extern int __overflow (_IO_FILE *, int) __attribute__ ((__nothrow__));
extern wint_t __wunderflow (_IO_FILE *) __attribute__ ((__nothrow__));
extern wint_t __wuflow (_IO_FILE *) __attribute__ ((__nothrow__));
extern wint_t __woverflow (_IO_FILE *, wint_t) __attribute__ ((__nothrow__));
# 444 "../libio/libio.h"
extern int _IO_getc (_IO_FILE *__fp) __attribute__ ((__nothrow__));
extern int _IO_putc (int __c, _IO_FILE *__fp) __attribute__ ((__nothrow__));
extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
extern int _IO_peekc_locked (_IO_FILE *__fp) __attribute__ ((__nothrow__));
extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
# 474 "../libio/libio.h"
extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
__gnuc_va_list, int *__restrict) __attribute__ ((__nothrow__));
extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
__gnuc_va_list) __attribute__ ((__nothrow__));
extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t) __attribute__ ((__nothrow__));
extern size_t _IO_sgetn (_IO_FILE *, void *, size_t) __attribute__ ((__nothrow__));
extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int) __attribute__ ((__nothrow__));
extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int) __attribute__ ((__nothrow__));
extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
extern wint_t _IO_getwc (_IO_FILE *__fp) __attribute__ ((__nothrow__));
extern wint_t _IO_putwc (wchar_t __wc, _IO_FILE *__fp) __attribute__ ((__nothrow__));
extern int _IO_fwide (_IO_FILE *__fp, int __mode) __attribute__ ((__nothrow__));
# 1 "../include/shlib-compat.h" 1
# 26 "../include/shlib-compat.h"
# 1 "/home/benh/glibc-2.3.5/build-tree/powerpc-nptl/abi-versions.h" 1
# 27 "../include/shlib-compat.h" 2
# 495 "../libio/libio.h" 2
# 523 "../libio/libio.h"
extern int _IO_vfwscanf (_IO_FILE * __restrict, const wchar_t * __restrict,
__gnuc_va_list, int *__restrict) __attribute__ ((__nothrow__));
extern int _IO_vfwprintf (_IO_FILE *__restrict, const wchar_t *__restrict,
__gnuc_va_list) __attribute__ ((__nothrow__));
extern __ssize_t _IO_wpadn (_IO_FILE *, wint_t, __ssize_t) __attribute__ ((__nothrow__));
extern void _IO_free_wbackup_area (_IO_FILE *) __attribute__ ((__nothrow__));
# 2 "../include/libio.h" 2
# 73 "../libio/stdio.h" 2
typedef __gnuc_va_list va_list;
# 86 "../libio/stdio.h"
typedef _G_fpos_t fpos_t;
typedef _G_fpos64_t fpos64_t;
# 138 "../libio/stdio.h"
# 1 "/home/benh/glibc-2.3.5/build-tree/powerpc-nptl/bits/stdio_lim.h" 1
# 139 "../libio/stdio.h" 2
extern struct _IO_FILE *stdin;
extern struct _IO_FILE *stdout;
extern struct _IO_FILE *stderr;
extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
extern FILE *tmpfile (void);
# 174 "../libio/stdio.h"
extern FILE *tmpfile64 (void);
extern char *tmpnam (char *__s) __attribute__ ((__nothrow__));
extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__));
# 196 "../libio/stdio.h"
extern char *tempnam (__const char *__dir, __const char *__pfx)
__attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
extern int fclose (FILE *__stream);
extern int fflush (FILE *__stream);
# 221 "../libio/stdio.h"
extern int fflush_unlocked (FILE *__stream);
# 231 "../libio/stdio.h"
extern int fcloseall (void);
extern FILE *fopen (__const char *__restrict __filename,
__const char *__restrict __modes);
extern FILE *freopen (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream);
# 262 "../libio/stdio.h"
extern FILE *fopen64 (__const char *__restrict __filename,
__const char *__restrict __modes);
extern FILE *freopen64 (__const char *__restrict __filename,
__const char *__restrict __modes,
FILE *__restrict __stream);
extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__));
extern FILE *fopencookie (void *__restrict __magic_cookie,
__const char *__restrict __modes,
_IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__));
extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) __attribute__ ((__nothrow__));
extern FILE *open_memstream (char **__restrict __bufloc,
size_t *__restrict __sizeloc) __attribute__ ((__nothrow__));
extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
int __modes, size_t __n) __attribute__ ((__nothrow__));
extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
size_t __size) __attribute__ ((__nothrow__));
extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
extern int fprintf (FILE *__restrict __stream,
__const char *__restrict __format, ...);
extern int printf (__const char *__restrict __format, ...);
extern int sprintf (char *__restrict __s,
__const char *__restrict __format, ...) __attribute__ ((__nothrow__));
extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg);
extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg) __attribute__ ((__nothrow__));
extern int snprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
extern int vsnprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
__gnuc_va_list __arg)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));
extern int __asprintf (char **__restrict __ptr,
__const char *__restrict __fmt, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
extern int asprintf (char **__restrict __ptr,
__const char *__restrict __fmt, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
extern int vdprintf (int __fd, __const char *__restrict __fmt,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 2, 0)));
extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
__attribute__ ((__format__ (__printf__, 2, 3)));
extern int fscanf (FILE *__restrict __stream,
__const char *__restrict __format, ...);
extern int scanf (__const char *__restrict __format, ...);
extern int sscanf (__const char *__restrict __s,
__const char *__restrict __format, ...) __attribute__ ((__nothrow__));
extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 2, 0)));
extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 1, 0)));
extern int vsscanf (__const char *__restrict __s,
__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
extern int fgetc (FILE *__stream);
extern int getc (FILE *__stream);
extern int getchar (void);
# 454 "../libio/stdio.h"
extern int getc_unlocked (FILE *__stream);
extern int getchar_unlocked (void);
# 465 "../libio/stdio.h"
extern int fgetc_unlocked (FILE *__stream);
extern int fputc (int __c, FILE *__stream);
extern int putc (int __c, FILE *__stream);
extern int putchar (int __c);
# 498 "../libio/stdio.h"
extern int fputc_unlocked (int __c, FILE *__stream);
extern int putc_unlocked (int __c, FILE *__stream);
extern int putchar_unlocked (int __c);
extern int getw (FILE *__stream);
extern int putw (int __w, FILE *__stream);
extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream);
extern char *gets (char *__s);
# 543 "../libio/stdio.h"
extern char *fgets_unlocked (char *__restrict __s, int __n,
FILE *__restrict __stream);
# 559 "../libio/stdio.h"
extern __ssize_t __getdelim (char **__restrict __lineptr,
size_t *__restrict __n, int __delimiter,
FILE *__restrict __stream);
extern __ssize_t getdelim (char **__restrict __lineptr,
size_t *__restrict __n, int __delimiter,
FILE *__restrict __stream);
extern __ssize_t getline (char **__restrict __lineptr,
size_t *__restrict __n,
FILE *__restrict __stream);
extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
extern int puts (__const char *__s);
extern int ungetc (int __c, FILE *__stream);
extern size_t fread (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream);
extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __s);
# 620 "../libio/stdio.h"
extern int fputs_unlocked (__const char *__restrict __s,
FILE *__restrict __stream);
# 631 "../libio/stdio.h"
extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream);
extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
size_t __n, FILE *__restrict __stream);
extern int fseek (FILE *__stream, long int __off, int __whence);
extern long int ftell (FILE *__stream);
extern void rewind (FILE *__stream);
# 667 "../libio/stdio.h"
extern int fseeko (FILE *__stream, __off_t __off, int __whence);
extern __off_t ftello (FILE *__stream);
# 686 "../libio/stdio.h"
extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
# 709 "../libio/stdio.h"
extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
extern __off64_t ftello64 (FILE *__stream);
extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
extern int feof (FILE *__stream) __attribute__ ((__nothrow__));
extern int ferror (FILE *__stream) __attribute__ ((__nothrow__));
extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
extern void perror (__const char *__s);
# 1 "../sysdeps/unix/sysv/linux/bits/sys_errlist.h" 1
# 27 "../sysdeps/unix/sysv/linux/bits/sys_errlist.h"
extern int sys_nerr;
extern __const char *__const sys_errlist[];
extern int _sys_nerr;
extern __const char *__const _sys_errlist[];
# 748 "../libio/stdio.h" 2
extern int fileno (FILE *__stream) __attribute__ ((__nothrow__));
extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
# 767 "../libio/stdio.h"
extern FILE *popen (__const char *__command, __const char *__modes);
extern int pclose (FILE *__stream);
extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
extern char *cuserid (char *__s);
struct obstack;
extern int obstack_printf (struct obstack *__restrict __obstack,
__const char *__restrict __format, ...)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
extern int obstack_vprintf (struct obstack *__restrict __obstack,
__const char *__restrict __format,
__gnuc_va_list __args)
__attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));
extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__));
extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
# 828 "../libio/stdio.h"
# 1 "../libio/bits/stdio.h" 1
# 33 "../libio/bits/stdio.h"
extern __inline int
vprintf (__const char *__restrict __fmt, __gnuc_va_list __arg)
{
return vfprintf (stdout, __fmt, __arg);
}
extern __inline int
getchar (void)
{
return _IO_getc (stdin);
}
extern __inline int
getc_unlocked (FILE *__fp)
{
return (__builtin_expect ((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end, 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
}
extern __inline int
getchar_unlocked (void)
{
return (__builtin_expect ((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end, 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
}
extern __inline int
putchar (int __c)
{
return _IO_putc (__c, stdout);
}
extern __inline int
fputc_unlocked (int __c, FILE *__stream)
{
return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putc_unlocked (int __c, FILE *__stream)
{
return (__builtin_expect ((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end, 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
}
extern __inline int
putchar_unlocked (int __c)
{
return (__builtin_expect ((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end, 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
}
extern __inline __ssize_t
getline (char **__lineptr, size_t *__n, FILE *__stream)
{
return __getdelim (__lineptr, __n, '\n', __stream);
}
extern __inline int
__attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x10) != 0);
}
extern __inline int
__attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
{
return (((__stream)->_flags & 0x20) != 0);
}
# 829 "../libio/stdio.h" 2
# 6 "../include/stdio.h" 2
extern int __fcloseall (void);
extern int __snprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, ...)
__attribute__ ((__format__ (__printf__, 3, 4)));
extern int __vsnprintf (char *__restrict __s, size_t __maxlen,
__const char *__restrict __format, __gnuc_va_list __arg)
__attribute__ ((__format__ (__printf__, 3, 0)));
extern int __vfscanf (FILE *__restrict __s,
__const char *__restrict __format,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 2, 0)));
extern int __vscanf (__const char *__restrict __format,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 1, 0)));
extern __ssize_t __getline (char **__lineptr, size_t *__n,
FILE *__stream);
extern int __vsscanf (__const char *__restrict __s,
__const char *__restrict __format,
__gnuc_va_list __arg)
__attribute__ ((__format__ (__scanf__, 2, 0)));
extern int __sprintf_chk (char *, int, size_t, const char *, ...) __attribute__ ((__nothrow__));
extern int __snprintf_chk (char *, size_t, int, size_t, const char *, ...)
__attribute__ ((__nothrow__));
extern int __vsprintf_chk (char *, int, size_t, const char *,
__gnuc_va_list) __attribute__ ((__nothrow__));
extern int __vsnprintf_chk (char *, size_t, int, size_t, const char *,
__gnuc_va_list) __attribute__ ((__nothrow__));
extern int __printf_chk (int, const char *, ...);
extern int __fprintf_chk (FILE *, int, const char *, ...);
extern int __vprintf_chk (int, const char *, __gnuc_va_list);
extern int __vfprintf_chk (FILE *, int, const char *, __gnuc_va_list);
extern FILE *__new_tmpfile (void);
extern FILE *__old_tmpfile (void);
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 50 "../include/stdio.h" 2
extern int __path_search (char *__tmpl, size_t __tmpl_len,
__const char *__dir, __const char *__pfx,
int __try_tempdir);
extern int __gen_tempname (char *__tmpl, int __kind);
extern void __libc_fatal (__const char *__message)
__attribute__ ((__noreturn__));
extern void __libc_message (int do_abort, __const char *__fnt, ...);
extern void __flockfile (FILE *__stream);
extern void __funlockfile (FILE *__stream);
extern int __ftrylockfile (FILE *__stream);
extern int __getc_unlocked (FILE *__fp);
extern wint_t __getwc_unlocked (FILE *__fp);
extern __const char *__const _sys_errlist_internal[] __attribute__ ((visibility ("hidden")));
extern int _sys_nerr_internal __attribute__ ((visibility ("hidden")));
extern int __asprintf_internal (char **__restrict __ptr,
__const char *__restrict __fmt, ...)
__attribute__ ((visibility ("hidden"))) __attribute__ ((__format__ (__printf__, 2, 3)));
# 106 "../include/stdio.h"
# 6 "../elf/tst-execstack-mod.c" 2
# 1 "../include/stdlib.h" 1
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 151 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 3 4
typedef int ptrdiff_t;
# 8 "../include/stdlib.h" 2
# 1 "../stdlib/stdlib.h" 1
# 33 "../stdlib/stdlib.h"
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 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
# 65 "../sysdeps/generic/bits/waitstatus.h"
# 1 "../include/endian.h" 1
# 1 "../string/endian.h" 1
# 37 "../string/endian.h"
# 1 "../sysdeps/powerpc/bits/endian.h" 1
# 38 "../string/endian.h" 2
# 2 "../include/endian.h" 2
# 66 "../sysdeps/generic/bits/waitstatus.h" 2
union wait
{
int w_status;
struct
{
unsigned int:16;
unsigned int __w_retcode:8;
unsigned int __w_coredump:1;
unsigned int __w_termsig:7;
} __wait_terminated;
struct
{
unsigned int:16;
unsigned int __w_stopsig:8;
unsigned int __w_stopval:8;
} __wait_stopped;
};
# 44 "../stdlib/stdlib.h" 2
# 68 "../stdlib/stdlib.h"
typedef union
{
union wait *__uptr;
int *__iptr;
} __WAIT_STATUS __attribute__ ((__transparent_union__));
# 96 "../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;
# 140 "../stdlib/stdlib.h"
extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__));
extern double atof (__const char *__nptr)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern int atoi (__const char *__nptr)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern long int atol (__const char *__nptr)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
__extension__ extern long long int atoll (__const char *__nptr)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
extern double strtod (__const char *__restrict __nptr,
char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern float strtof (__const char *__restrict __nptr,
char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long double strtold (__const char *__restrict __nptr,
char **__restrict __endptr)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long int strtol (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern unsigned long int strtoul (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int strtoq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int strtouq (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int strtoll (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int strtoull (__const char *__restrict __nptr,
char **__restrict __endptr, int __base)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 235 "../stdlib/stdlib.h"
# 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;
const char *__names[13];
} *__locale_t;
# 2 "../include/xlocale.h" 2
# 236 "../stdlib/stdlib.h" 2
extern long int strtol_l (__const char *__restrict __nptr,
char **__restrict __endptr, int __base,
__locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4)));
extern unsigned long int strtoul_l (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, __locale_t __loc)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4)));
__extension__
extern long long int strtoll_l (__const char *__restrict __nptr,
char **__restrict __endptr, int __base,
__locale_t __loc)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4)));
__extension__
extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, __locale_t __loc)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4)));
extern double strtod_l (__const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
extern float strtof_l (__const char *__restrict __nptr,
char **__restrict __endptr, __locale_t __loc)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
extern long double strtold_l (__const char *__restrict __nptr,
char **__restrict __endptr,
__locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
extern double __strtod_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern float __strtof_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long double __strtold_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __group) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long int __strtol_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern unsigned long int __strtoul_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern long long int __strtoll_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
__extension__
extern unsigned long long int __strtoull_internal (__const char *
__restrict __nptr,
char **__restrict __endptr,
int __base, int __group)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern __inline double
__attribute__ ((__nothrow__)) strtod (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtod_internal (__nptr, __endptr, 0);
}
extern __inline long int
__attribute__ ((__nothrow__)) strtol (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
{
return __strtol_internal (__nptr, __endptr, __base, 0);
}
extern __inline unsigned long int
__attribute__ ((__nothrow__)) strtoul (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
{
return __strtoul_internal (__nptr, __endptr, __base, 0);
}
extern __inline float
__attribute__ ((__nothrow__)) strtof (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtof_internal (__nptr, __endptr, 0);
}
extern __inline long double
__attribute__ ((__nothrow__)) strtold (__const char *__restrict __nptr, char **__restrict __endptr)
{
return __strtold_internal (__nptr, __endptr, 0);
}
__extension__ extern __inline long long int
__attribute__ ((__nothrow__)) strtoq (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
__attribute__ ((__nothrow__)) strtouq (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline long long int
__attribute__ ((__nothrow__)) strtoll (__const char *__restrict __nptr, char **__restrict __endptr, int __base)
{
return __strtoll_internal (__nptr, __endptr, __base, 0);
}
__extension__ extern __inline unsigned long long int
__attribute__ ((__nothrow__)) strtoull (__const char * __restrict __nptr, char **__restrict __endptr, int __base)
{
return __strtoull_internal (__nptr, __endptr, __base, 0);
}
extern __inline double
__attribute__ ((__nothrow__)) atof (__const char *__nptr)
{
return strtod (__nptr, (char **) ((void *)0));
}
extern __inline int
__attribute__ ((__nothrow__)) atoi (__const char *__nptr)
{
return (int) strtol (__nptr, (char **) ((void *)0), 10);
}
extern __inline long int
__attribute__ ((__nothrow__)) atol (__const char *__nptr)
{
return strtol (__nptr, (char **) ((void *)0), 10);
}
__extension__ extern __inline long long int
__attribute__ ((__nothrow__)) atoll (__const char *__nptr)
{
return strtoll (__nptr, (char **) ((void *)0), 10);
}
# 424 "../stdlib/stdlib.h"
extern char *l64a (long int __n) __attribute__ ((__nothrow__));
extern long int a64l (__const char *__s)
__attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
# 1 "../include/sys/types.h" 1
# 1 "../posix/sys/types.h" 1
# 29 "../posix/sys/types.h"
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;
# 133 "../posix/sys/types.h"
# 1 "../include/time.h" 1
# 1 "../time/time.h" 1
# 58 "../time/time.h"
typedef __clock_t clock_t;
# 74 "../time/time.h"
typedef __time_t time_t;
# 92 "../time/time.h"
typedef __clockid_t clockid_t;
# 104 "../time/time.h"
typedef __timer_t timer_t;
# 4 "../include/time.h" 2
# 134 "../posix/sys/types.h" 2
typedef __useconds_t useconds_t;
typedef __suseconds_t suseconds_t;
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 148 "../posix/sys/types.h" 2
typedef unsigned long int ulong;
typedef unsigned short int ushort;
typedef unsigned int uint;
# 191 "../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__)));
# 213 "../posix/sys/types.h"
# 1 "../include/endian.h" 1
# 214 "../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
# 118 "../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/generic/bits/time.h" 1
# 69 "../sysdeps/generic/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;
# 67 "../misc/sys/select.h"
typedef struct
{
__fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
} fd_set;
typedef __fd_mask fd_mask;
# 99 "../misc/sys/select.h"
# 109 "../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);
# 121 "../misc/sys/select.h"
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);
# 217 "../posix/sys/types.h" 2
# 1 "../sysdeps/unix/sysv/linux/sys/sysmacros.h" 1
# 29 "../sysdeps/unix/sysv/linux/sys/sysmacros.h"
__extension__
extern __inline unsigned int gnu_dev_major (unsigned long long int __dev)
__attribute__ ((__nothrow__));
__extension__
extern __inline unsigned int gnu_dev_minor (unsigned long long int __dev)
__attribute__ ((__nothrow__));
__extension__
extern __inline unsigned long long int gnu_dev_makedev (unsigned int __major,
unsigned int __minor)
__attribute__ ((__nothrow__));
__extension__ extern __inline unsigned int
__attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
{
return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
}
__extension__ extern __inline unsigned int
__attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
{
return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
}
__extension__ extern __inline unsigned long long int
__attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
{
return ((__minor & 0xff) | ((__major & 0xfff) << 8)
| (((unsigned long long int) (__minor & ~0xff)) << 12)
| (((unsigned long long int) (__major & ~0xfff)) << 32));
}
# 220 "../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;
# 258 "../posix/sys/types.h"
typedef __blkcnt64_t blkcnt64_t;
typedef __fsblkcnt64_t fsblkcnt64_t;
typedef __fsfilcnt64_t fsfilcnt64_t;
# 1 "../nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h" 1
# 24 "../nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h"
# 1 "../sysdeps/powerpc/powerpc32/bits/wordsize.h" 1
# 25 "../nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h" 2
# 51 "../nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h"
typedef unsigned long int pthread_t;
typedef union
{
char __size[36];
long int __align;
} pthread_attr_t;
typedef union
{
struct
{
int __lock;
unsigned int __count;
int __owner;
int __kind;
unsigned int __nusers;
int __spins;
} __data;
char __size[24];
long int __align;
} pthread_mutex_t;
typedef union
{
char __size[4];
int __align;
} pthread_mutexattr_t;
typedef union
{
struct
{
int __lock;
unsigned int __futex;
__extension__ unsigned long long int __total_seq;
__extension__ unsigned long long int __wakeup_seq;
__extension__ unsigned long long int __woken_seq;
void *__mutex;
unsigned int __nwaiters;
unsigned int __broadcast_seq;
} __data;
char __size[48];
__extension__ long long int __align;
} pthread_cond_t;
typedef union
{
char __size[4];
int __align;
} pthread_condattr_t;
typedef unsigned int pthread_key_t;
typedef int pthread_once_t;
typedef union
{
# 149 "../nptl/sysdeps/unix/sysv/linux/powerpc/bits/pthreadtypes.h"
struct
{
int __lock;
unsigned int __nr_readers;
unsigned int __readers_wakeup;
unsigned int __writer_wakeup;
unsigned int __nr_readers_queued;
unsigned int __nr_writers_queued;
unsigned int __flags;
int __writer;
} __data;
char __size[32];
long int __align;
} pthread_rwlock_t;
typedef union
{
char __size[8];
long int __align;
} pthread_rwlockattr_t;
typedef volatile int pthread_spinlock_t;
typedef union
{
char __size[20];
long int __align;
} pthread_barrier_t;
typedef union
{
char __size[4];
int __align;
} pthread_barrierattr_t;
# 267 "../posix/sys/types.h" 2
# 2 "../include/sys/types.h" 2
# 434 "../stdlib/stdlib.h" 2
extern long int random (void) __attribute__ ((__nothrow__));
extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
extern char *initstate (unsigned int __seed, char *__statebuf,
size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
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) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int srandom_r (unsigned int __seed, struct random_data *__buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
size_t __statelen,
struct random_data *__restrict __buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
extern int setstate_r (char *__restrict __statebuf,
struct random_data *__restrict __buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int rand (void) __attribute__ ((__nothrow__));
extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
extern double drand48 (void) __attribute__ ((__nothrow__));
extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long int lrand48 (void) __attribute__ ((__nothrow__));
extern long int nrand48 (unsigned short int __xsubi[3])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern long int mrand48 (void) __attribute__ ((__nothrow__));
extern long int jrand48 (unsigned short int __xsubi[3])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
extern unsigned short int *seed48 (unsigned short int __seed16v[3])
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
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) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int erand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int lrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int nrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int mrand48_r (struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int jrand48_r (unsigned short int __xsubi[3],
struct drand48_data *__restrict __buffer,
long int *__restrict __result)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int seed48_r (unsigned short int __seed16v[3],
struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern int lcong48_r (unsigned short int __param[7],
struct drand48_data *__buffer)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
extern void *calloc (size_t __nmemb, size_t __size)
__attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
extern void *realloc (void *__ptr, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
extern void free (void *__ptr) __attribute__ ((__nothrow__));
extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
# 1 "../include/alloca.h" 1
# 1 "../stdlib/alloca.h" 1
# 25 "../stdlib/alloca.h"
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/include/stddef.h" 1 3 4
# 26 "../stdlib/alloca.h" 2
extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
# 4 "../include/alloca.h" 2
# 1 "../sysdeps/powerpc/stackinfo.h" 1
# 5 "../include/alloca.h" 2
extern void *__alloca (size_t __size);
extern int __libc_use_alloca (size_t size) __attribute__ ((const));
extern int __libc_alloca_cutoff (size_t size) __attribute__ ((const));
# 1 "../nptl/sysdeps/pthread/allocalim.h" 1
# 20 "../nptl/sysdeps/pthread/allocalim.h"
# 1 "../include/alloca.h" 1
# 21 "../nptl/sysdeps/pthread/allocalim.h" 2
# 1 "../include/limits.h" 1
# 124 "../include/limits.h"
# 1 "/usr/lib/gcc/powerpc-linux/3.4.4/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
# 153 "../posix/bits/posix1_lim.h"
# 1 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h" 1
# 36 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h"
# 1 "/home/benh/glibc-2.3.5/debian/include/linux/limits.h" 1 3 4
# 37 "../nptl/sysdeps/unix/sysv/linux/bits/local_lim.h" 2
# 154 "../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/benh/glibc-2.3.5/build-tree/powerpc-nptl/bits/stdio_lim.h" 1
# 35 "../include/bits/xopen_lim.h" 2
# 153 "../include/limits.h" 2
# 22 "../nptl/sysdeps/pthread/allocalim.h" 2
extern inline int
__libc_use_alloca (size_t size)
{
return (__builtin_expect (size <= 16384 / 4, 1)
|| __libc_alloca_cutoff (size));
}
# 21 "../include/alloca.h" 2
# 607 "../stdlib/stdlib.h" 2
extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
__attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern char *__secure_getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int setenv (__const char *__name, __const char *__value, int __replace)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
extern int clearenv (void) __attribute__ ((__nothrow__));
# 691 "../stdlib/stdlib.h"
extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 702 "../stdlib/stdlib.h"
extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1)));
# 711 "../stdlib/stdlib.h"
extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1)));
# 721 "../stdlib/stdlib.h"
extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int system (__const char *__command);
extern char *canonicalize_file_name (__const char *__name)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 749 "../stdlib/stdlib.h"
extern char *realpath (__const char *__restrict __name,
char *__restrict __resolved) __attribute__ ((__nothrow__));
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)
__attribute__ ((__nonnull__ (1, 2, 5)));
extern void qsort (void *__base, size_t __nmemb, size_t __size,
__compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
__extension__ extern long long int llabs (long long int __x)
__attribute__ ((__nothrow__)) __attribute__ ((__const__));
extern div_t div (int __numer, int __denom)
__attribute__ ((__nothrow__)) __attribute__ ((__const__));
extern ldiv_t ldiv (long int __numer, long int __denom)
__attribute__ ((__nothrow__)) __attribute__ ((__const__));
__extension__ extern lldiv_t lldiv (long long int __numer,
long long int __denom)
__attribute__ ((__nothrow__)) __attribute__ ((__const__));
# 814 "../stdlib/stdlib.h"
extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
extern char *gcvt (double __value, int __ndigit, char *__buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
extern char *qecvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
extern char *qfcvt (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
extern char *qgcvt (long double __value, int __ndigit, char *__buf)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
int *__restrict __sign, char *__restrict __buf,
size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qecvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int qfcvt_r (long double __value, int __ndigit,
int *__restrict __decpt, int *__restrict __sign,
char *__restrict __buf, size_t __len)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__));
extern int mbtowc (wchar_t *__restrict __pwc,
__const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__));
extern size_t mbstowcs (wchar_t *__restrict __pwcs,
__const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
extern size_t wcstombs (char *__restrict __s,
__const wchar_t *__restrict __pwcs, size_t __n)
__attribute__ ((__nothrow__));
extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 902 "../stdlib/stdlib.h"
extern int getsubopt (char **__restrict __optionp,
char *__const *__restrict __tokens,
char **__restrict __valuep)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3)));
extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
extern int posix_openpt (int __oflag);
extern int grantpt (int __fd) __attribute__ ((__nothrow__));
extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
extern char *ptsname (int __fd) __attribute__ ((__nothrow__));
extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
extern int getpt (void);
extern int getloadavg (double __loadavg[], int __nelem)
__attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
# 9 "../include/stdlib.h" 2
extern __typeof (strtol_l) __strtol_l;
extern __typeof (strtoul_l) __strtoul_l;
extern __typeof (strtoll_l) __strtoll_l;
extern __typeof (strtoull_l) __strtoull_l;
extern __typeof (strtod_l) __strtod_l;
extern __typeof (strtof_l) __strtof_l;
extern __typeof (strtold_l) __strtold_l;
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 struct drand48_data __libc_drand48_data __attribute__ ((visibility ("hidden")));
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 int __cxa_atexit_internal (void (*func) (void *), void *arg, void *d)
__attribute__ ((visibility ("hidden")));
extern void __cxa_finalize (void *d);
extern int __posix_memalign (void **memptr, size_t alignment, size_t size)
__attribute__ ((__malloc__));
extern void *__libc_memalign (size_t alignment, size_t size)
__attribute__ ((__malloc__));
extern int __libc_system (const char *line);
extern double ____strtod_l_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group,
__locale_t __loc);
extern float ____strtof_l_internal (__const char *__restrict __nptr,
char **__restrict __endptr, int __group,
__locale_t __loc);
extern long double ____strtold_l_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __group, __locale_t __loc);
extern long int ____strtol_l_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group,
__locale_t __loc);
extern unsigned long int ____strtoul_l_internal (__const char *
__restrict __nptr,
char **__restrict __endptr,
int __base, int __group,
__locale_t __loc);
__extension__
extern long long int ____strtoll_l_internal (__const char *__restrict __nptr,
char **__restrict __endptr,
int __base, int __group,
__locale_t __loc);
__extension__
extern unsigned long long int ____strtoull_l_internal (__const char *
__restrict __nptr,
char **
__restrict __endptr,
int __base, int __group,
__locale_t __loc);
extern __inline double
__strtod_l (__const char *__restrict __nptr, char **__restrict __endptr,
__locale_t __loc)
{
return ____strtod_l_internal (__nptr, __endptr, 0, __loc);
}
extern __inline long int
__strtol_l (__const char *__restrict __nptr, char **__restrict __endptr,
int __base, __locale_t __loc)
{
return ____strtol_l_internal (__nptr, __endptr, __base, 0, __loc);
}
extern __inline unsigned long int
__strtoul_l (__const char *__restrict __nptr, char **__restrict __endptr,
int __base, __locale_t __loc)
{
return ____strtoul_l_internal (__nptr, __endptr, __base, 0, __loc);
}
extern __inline float
__strtof_l (__const char *__restrict __nptr, char **__restrict __endptr,
__locale_t __loc)
{
return ____strtof_l_internal (__nptr, __endptr, 0, __loc);
}
extern __inline long double
__strtold_l (__const char *__restrict __nptr, char **__restrict __endptr,
__locale_t __loc)
{
return ____strtold_l_internal (__nptr, __endptr, 0, __loc);
}
__extension__ extern __inline long long int
__strtoll_l (__const char *__restrict __nptr, char **__restrict __endptr,
int __base, __locale_t __loc)
{
return ____strtoll_l_internal (__nptr, __endptr, __base, 0, __loc);
}
__extension__ extern __inline unsigned long long int
__strtoull_l (__const char * __restrict __nptr, char **__restrict __endptr,
int __base, __locale_t __loc)
{
return ____strtoull_l_internal (__nptr, __endptr, __base, 0, __loc);
}
# 197 "../include/stdlib.h"
extern void * __default_morecore (ptrdiff_t);
# 7 "../elf/tst-execstack-mod.c" 2
void callme (void (*callback) (void));
void
tryme (void)
{
_Bool ok = 0;
void callback (void) { ok = 1; }
callme (&callback);
if (ok)
printf ("DSO called ok (local %p, trampoline %p)\n", &ok, &callback);
else
abort ();
}
void
callme (void (*callback) (void))
{
(*callback) ();
}
# 2 "tst-execstack-mod.c" 2
.file "tst-execstack-mod.c"
.section .debug_abbrev,"",@progbits
.Ldebug_abbrev0:
.section .debug_info,"",@progbits
.Ldebug_info0:
.section .debug_line,"",@progbits
.Ldebug_line0:
.section ".text"
.Ltext0:
.align 2
.globl callme
.type callme, @function
callme:
.LFB39:
mflr 4
stwu 1,-16(1)
.LCFI0:
mtlr 3
stw 4,20(1)
.LCFI1:
blrl
lwz 0,20(1)
addi 1,1,16
mtlr 0
blr
.LFE39:
.size callme, .-callme
.align 2
.type callback.0, @function
callback.0:
.LFB40:
stwu 1,-32(1)
.LCFI2:
li 0,1
addi 1,1,32
stb 0,0(11)
blr
.LFE40:
.size callback.0, .-callback.0
.globl __trampoline_setup
.section .rodata.str1.4,"aMS",@progbits,1
.align 2
.LC0:
.string "DSO called ok (local %p, trampoline %p)\n"
.section ".text"
.align 2
.globl tryme
.type tryme, @function
tryme:
.LFB37:
stwu 1,-80(1)
.LCFI3:
mflr 3
bl _GLOBAL_OFFSET_TABLE_@local-4
stw 30,72(1)
.LCFI4:
mflr 30
stw 29,68(1)
.LCFI5:
addi 29,1,16
stw 3,84(1)
.LCFI6:
li 4,40
addi 6,1,8
lwz 5,callback.0@got(30)
mr 3,29
bl __trampoline_setup@plt
li 4,0
mr 3,29
stb 4,8(1)
bl callme@plt
lbz 0,8(1)
lwz 3,.LC0@got(30)
mr 5,29
cmpwi 7,0,0
addi 4,1,8
beq- 7,.L8
crxor 6,6,6
bl printf@plt
lwz 5,84(1)
lwz 29,68(1)
lwz 30,72(1)
mtlr 5
addi 1,1,80
blr
.L8:
bl abort@plt
.LFE37:
.size tryme, .-tryme
Reply to: