This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Fwd: eglibc/glibc cross-build using llvm-gcc with unsupported -fno-toplevel-reorder


Hello,

I'm cross-compiling eglibc for new processor using llvm tool chain
(llcm-gcc, see www.llvm.org).
Build passes, but creates?miscompiled crt* files due to lack of
-fno-toplevel-reorder support in llvm-gcc.
This option might become deprecated?in gcc (~v 4.6), and seems never
will be supported by llvm.
http://www.llvm.org/bugs/show_bug.cgi?id=6364

Particular affected file is libc/sysdeps/generic/initfini.c. It
contains inlined asm with special markup of prologue/epilogue.
LLVM outputs all top level inlined asm as first bleck, and only after
that outputs functions. As result?sed strips wrong parts into crt*.s.

I've got advice?on llvm-dev maillist (see below) to split files or
avoid these tricks.

Ulrich, could you please share your point of view regarding issues
with -fno-toplevel-reorder?

Regards,
Sergey Yakoushkin

2010/2/22 Török Edwin?<edwintorok@gmail.com>
>
> On 2010-02-21 23:36, Sergey Yakoushkin wrote:
> > Hi, Rafael
> >
> > Inlined asm markup inside functions and on the top level is used to
> > split asm prologue/epilogue parts in very fine-grained manner.
> > So, splitting source c won't give the same result.
>
> You could have 2 files:
> ?- 1 which contains the function, and a marker where prolog ends
> (beginning of file is implicit marker of where it begins)
> ?- 1 which contains the function, and a marker where epilog begins
> (end of file is implicit marker of where it ends)
>
> Or just look at ./sysdeps/x86_64/elf/initfini.c, its a single asm()
> block containing all relevant markers, and no C code.
> I think thats better than all these hacks to get the asm you want out of
> C code.
>
> Best regards,
> --Edwin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]