public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* libffi broken with your latest change
@ 2003-05-19  6:34 Andreas Jaeger
  2003-05-19  6:49 ` Andreas Jaeger
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Jaeger @ 2003-05-19  6:34 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: gcc


Jakub,

this patch:

2003-05-16  Jakub Jelinek  <jakub@redhat.com>

        * configure.in (HAVE_RO_EH_FRAME): Check whether .eh_frame section
        should be read-only.
        * configure: Rebuilt.
        * fficonfig.h.in: Rebuilt.
        * include/ffi.h.in (EH_FRAME_FLAGS): Define.
        * src/alpha/osf.S: Use EH_FRAME_FLAGS.
        * src/powerpc/linux64.S: Likewise.
        * src/powerpc/linux64_closure.S: Likewise.  Include ffi.h.
        * src/powerpc/sysv.S: Use EH_FRAME_FLAGS.  Use pcrel encoding
        if -fpic/-fPIC/-mrelocatable.
        * src/powerpc/powerpc_closure.S: Likewise.
        * src/sparc/v8.S: If HAVE_RO_EH_FRAME is defined, don't include
        #write in .eh_frame flags.
        * src/sparc/v9.S: Likewise.
        * src/x86/unix64.S: Use EH_FRAME_FLAGS.
        * src/x86/sysv.S: Likewise.  Use pcrel encoding if -fpic/-fPIC.
        * src/s390/sysv.S: Use EH_FRAME_FLAGS.  Include ffi.h.

Is the only change to libffi in the last few days and since it's in,
i686-linux-gnu does not compile any more:

/builds/gcc/misc/gcc/xgcc -B/builds/gcc/misc/gcc/ -B/opt/gcc/3.4-devel/i686-suse-linux-gnu/bin/ -B/opt/gcc/3.4-devel/i686-suse-linux-gnu/lib/ -isystem /opt/gcc/3.4-devel/i686-suse-linux-gnu/include -isystem /opt/gcc/3.4-devel/i686-suse-linux-gnu/sys-include -fexceptions -O2 -g -O2 -o .libs/ffitest -shared-libgcc .libs/ffitest.o  ./.libs/libffi.so -Wl,--rpath -Wl,/opt/gcc/3.4-devel/lib
./.libs/libffi.so: undefined reference to `FFI_TYPE_DOUBLE'
./.libs/libffi.so: undefined reference to `FFI_TYPE_SINT64'
./.libs/libffi.so: undefined reference to `FFI_TYPE_LONGDOUBLE'
./.libs/libffi.so: undefined reference to `FFI_TYPE_INT'
./.libs/libffi.so: undefined reference to `FFI_TYPE_FLOAT'
collect2: ld returned 1 exit status
make[4]: *** [ffitest] Error 1
make[4]: Leaving directory `/builds/gcc/misc/i686-suse-linux-gnu/libffi'

Can you look into this, please?

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: libffi broken with your latest change
  2003-05-19  6:34 libffi broken with your latest change Andreas Jaeger
@ 2003-05-19  6:49 ` Andreas Jaeger
  2003-05-19  7:33   ` Andreas Jaeger
  0 siblings, 1 reply; 3+ messages in thread
From: Andreas Jaeger @ 2003-05-19  6:49 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: gcc


The broken file is:
$ nm src/x86/sysv.o 
00000083 t .ffi_call_SYSV_end
         U FFI_TYPE_DOUBLE
         U FFI_TYPE_FLOAT
         U FFI_TYPE_INT
         U FFI_TYPE_LONGDOUBLE
         U FFI_TYPE_SINT64
0000007f t epilogue

But wait - could this be a preprocessor bug?  Neil, any idea?
The preprocessor defines:
#define FFI_TYPE_INT 1
and then we have:
 cmpl $FFI_TYPE_INT,%ecx

which is not changed.

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: libffi broken with your latest change
  2003-05-19  6:49 ` Andreas Jaeger
@ 2003-05-19  7:33   ` Andreas Jaeger
  0 siblings, 0 replies; 3+ messages in thread
From: Andreas Jaeger @ 2003-05-19  7:33 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: gcc

Andreas Jaeger <aj@suse.de> writes:

> The broken file is:
> $ nm src/x86/sysv.o 
> 00000083 t .ffi_call_SYSV_end
>          U FFI_TYPE_DOUBLE
>          U FFI_TYPE_FLOAT
>          U FFI_TYPE_INT
>          U FFI_TYPE_LONGDOUBLE
>          U FFI_TYPE_SINT64
> 0000007f t epilogue
>
> But wait - could this be a preprocessor bug?  Neil, any idea?
> The preprocessor defines:
> #define FFI_TYPE_INT 1
> and then we have:
>  cmpl $FFI_TYPE_INT,%ecx
>
> which is not changed.

And further investigation shows that GCC 3.4 20030515 compiles this
file fine even with your change.  So, it looks like one of the
preprocessor changes.  Sorry Jakub for accusing you wrongly.

Neil, your change to dollars in identifiers seems to have broken this.
If I compile the file with -fno-dollars-in-identifiers, sysv.o looks
fine:

$ nm src/x86/sysv.o 
00000071 t .ffi_call_SYSV_end
0000006d t epilogue
00000000 T ffi_call_SYSV
         U ffi_prep_args
0000006d t noretval
00000047 t retdouble
0000003b t retfloat
0000002e t retint
0000005f t retint64
00000053 t retlongdouble
0000006d t retstruct

But without the flag, I get the wrong result.

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de
    http://www.suse.de/~aj

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2003-05-19  7:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-05-19  6:34 libffi broken with your latest change Andreas Jaeger
2003-05-19  6:49 ` Andreas Jaeger
2003-05-19  7:33   ` Andreas Jaeger

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).