From mboxrd@z Thu Jan 1 00:00:00 1970 From: d@openbsd.org To: gcc-gnats@gcc.gnu.org Subject: debug/2283: -g3 -O1 -finline-function and __attribute__((constructor)) yield bad stabs Date: Sun, 01 Apr 2001 00:00:00 -0000 Message-id: <20010314031102.19090.qmail@sourceware.cygnus.com> X-SW-Source: 2001-q1/msg02309.html List-Id: >Number: 2283 >Category: debug >Synopsis: -g3 -O1 -finline-function and __attribute__((constructor)) yield bad stabs >Confidential: no >Severity: non-critical >Priority: medium >Responsible: unassigned >State: open >Class: sw-bug >Submitter-Id: net >Arrival-Date: Tue Mar 13 19:16:01 PST 2001 >Closed-Date: >Last-Modified: >Originator: David Leonard >Release: gcc version 2.95.3 20010112 (prerelease) >Organization: >Environment: Configuration I'm using the gcc from OpenBSD 2.8-current (march 2001) i386-unknown-openbsd2.8/2.95.3 >Description: This C compilation unit (called uthread_init.c): extern void _thread_init(void); void _thread_init_constructor(void) __attribute__((constructor)); void _thread_init_constructor() { _thread_init(); } When compiled like this: gcc -v -c uthread_autoinit.c -g3 -O1 -finline-functions Produces this error: Using builtin specs. gcc version 2.95.3 20010112 (prerelease) /usr/lib/gcc-lib/i386-unknown-openbsd2.8/2.95.3/cpp0 -lang-c -v -D__GNUC__=2 -D__GNUC_MINOR__=95 -D__unix__ -D__i386__ -D__OpenBSD__ -D__unix__ -D__i386__ -D__OpenBSD__ -Asystem(unix) -Asystem(OpenBSD) -Acpu(i386) -Amachine(i386) -D__OPTIMIZE__ -g3 uthread_autoinit.c /tmp/ccE31227.i GNU CPP version 2.95.3 20010112 (prerelease) (80386, BSD syntax) #include "..." search starts here: #include <...> search starts here: /usr/include End of search list. The following default directories have been omitted from the search path: /usr/include/g++ End of omitted list. /usr/lib/gcc-lib/i386-unknown-openbsd2.8/2.95.3/cc1 /tmp/ccE31227.i -quiet -dumpbase uthread_autoinit.c -g3 -O1 -version -finline-functions -o /tmp/ccU31227.s GNU C version 2.95.3 20010112 (prerelease) (i386-unknown-openbsd2.8) compiled by GNU C version 2.95.3 20010112 (prerelease). as -o uthread_autoinit.o /tmp/ccU31227.s /tmp/ccU31227.s: Assembler messages: /tmp/ccU31227.s:61: Error: Local symbol LBB3 never defined. /tmp/ccU31227.s:61: Error: Local symbol LBE3 never defined. /tmp/ccU31227.s:61: Fatal error:2 errors, 0 warnings, no object file generated. With -save-temps, the saved .i file, and the .s file are as follows: ------------------------------------------------------------ # 0 "uthread_autoinit.c" #define __BASE_FILE__ "uthread_autoinit.c" # 0 "uthread_autoinit.c" #define __VERSION__ "2.95.3 20010112 (prerelease)" # 0 "uthread_autoinit.c" #define __SIZE_TYPE__ unsigned int # 0 "uthread_autoinit.c" #define __PTRDIFF_TYPE__ int # 0 "uthread_autoinit.c" #define __WCHAR_TYPE__ int # 0 "uthread_autoinit.c" #define __DATE__ "Mar 14 2001" # 0 "uthread_autoinit.c" #define __TIME__ "13:04:51" # 0 "uthread_autoinit.c" #define __STDC__ 1 # 0 "uthread_autoinit.c" # 0 "uthread_autoinit.c" # 0 "uthread_autoinit.c" # 0 "uthread_autoinit.c" # 0 "uthread_autoinit.c" # 0 "uthread_autoinit.c" # 0 "uthread_autoinit.c" # 0 "uthread_autoinit.c" # 0 "uthread_autoinit.c" # 1 "uthread_autoinit.c" extern void _thread_init(void); void _thread_init_constructor(void) __attribute__((constructor)); void _thread_init_constructor() { _thread_init(); } ------------------------------------------------------------ .file "uthread_autoinit.c" gcc2_compiled.: ___gnu_compiled_c: .stabs "/tmp/",100,0,0,Ltext0 .stabs "uthread_autoinit.c",100,0,0,Ltext0 .text Ltext0: .stabs "int:t1=r1;0020000000000;0017777777777;",128,0,0,0 .stabs "char:t2=r2;0;127;",128,0,0,0 .stabs "long int:t3=r1;0020000000000;0017777777777;",128,0,0,0 .stabs "unsigned int:t4=r1;0000000000000;0037777777777;",128,0,0,0 .stabs "long unsigned int:t5=r1;0000000000000;0037777777777;",128,0,0,0 .stabs "long long int:t6=r1;01000000000000000000000;0777777777777777777777;",128,0,0,0 .stabs "long long unsigned int:t7=r1;0000000000000;01777777777777777777777;",128,0,0,0 .stabs "short int:t8=r8;-32768;32767;",128,0,0,0 .stabs "short unsigned int:t9=r9;0;65535;",128,0,0,0 .stabs "signed char:t10=r10;-128;127;",128,0,0,0 .stabs "unsigned char:t11=r11;0;255;",128,0,0,0 .stabs "float:t12=r1;4;0;",128,0,0,0 .stabs "double:t13=r1;8;0;",128,0,0,0 .stabs "long double:t14=r1;12;0;",128,0,0,0 .stabs "complex int:t15=s8real:1,0,32;imag:1,32,32;;",128,0,0,0 .stabs "complex float:t16=r16;4;0;",128,0,0,0 .stabs "complex double:t17=r17;8;0;",128,0,0,0 .stabs "complex long double:t18=r18;12;0;",128,0,0,0 .stabs "void:t19=19",128,0,0,0 .align 2,0x90 .globl __thread_init_constructor .type __thread_init_constructor , @function __thread_init_constructor: pushl %ebp movl %esp,%ebp subl $8,%esp .stabd 68,0,8 call __thread_init leave ret .stabd 68,0,9 .size __thread_init_constructor , . - __thread_init_constructor .stabs "_thread_init_constructor:F19",36,0,7,__thread_init_constructor .align 2,0x90 .globl __GLOBAL_$I$uthread_autoinit.cgccvPa .type __GLOBAL_$I$uthread_autoinit.cgccvPa , @function __GLOBAL_$I$uthread_autoinit.cgccvPa: LBB2: pushl %ebp movl %esp,%ebp subl $8,%esp .stabd 68,0,8 call __thread_init leave ret .stabd 68,0,9 LBE2: .stabd 68,0,10 .size __GLOBAL_$I$uthread_autoinit.cgccvPa , . - __GLOBAL_$I$uthread_autoinit.cgccvPa .stabs "_GLOBAL_$I$uthread_autoinit.cgccvPa:F19",36,0,10,__GLOBAL_$I$uthread_autoinit.cgccvPa .stabn 192,0,0,LBB2 .stabn 192,0,0,LBB3 .stabn 224,0,0,LBE3 .stabn 224,0,0,LBE2 >How-To-Repeat: compile this C source text extern void _thread_init(void); void _thread_init_constructor(void) __attribute__((constructor)); void _thread_init_constructor() { _thread_init(); } with this command gcc -v -c uthread_autoinit.c -g3 -O1 -finline-functions in this environment Using builtin specs. gcc version 2.95.3 20010112 (prerelease) OpenBSD 2.8 >Fix: >Release-Note: >Audit-Trail: >Unformatted: