compiler-rt: library paths and file names

Hi all,

in my group we are working on compiler-rt and we would like to ask few
clarifications:
- is there a specific reason to not include in compiler-rt 'crt' related files
(to generate crti.o, crtbegin.o, crtend.o, crtn.o and so on)?
- about file naming: what was the ratio behind the choice to differentiate
output files between architectures on a suffix basis instead of a directory basis?

In example now we have the following:

  ${prefix}/lib/clang/${clang_version}/lib/${os}/libclang_rt.${arch}.a

why this is better than something like

  ${prefix}/lib/clang/${clang_version}/lib/${arch}/${os}/libclang_rt.a

?

From the clang driver point of view this won't change nothing, but IMHO having a

distinct folder for each target would better ensure a strong separation between
libraries of different targets.

Thanks in advance for the attention.

Best regards,

Michele Scandale

Hi all,

in my group we are working on compiler-rt and we would like to ask few
clarifications:

  • is there a specific reason to not include in compiler-rt ‘crt’ related files
    (to generate crti.o, crtbegin.o, crtend.o, crtn.o and so on)?

The mentioned files are not compiler support files. They are part of the libc implementation. Each libc implementation has it’s own data structures, and initialization needs. There is no reason that LLVM (nor compiler-rt) needs to be aware of any of that.