On Thu, 14 Nov 2019 at 07:27, Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > > Hello Hesham, > > On 13/11/2019 16:32, Hesham Almatary wrote: > > On Wed, 13 Nov 2019 at 14:48, Sebastian Huber > > <sebastian.hu...@embedded-brains.de> wrote: > >> > >> Hello Hesham, > >> > >> On 23/10/2019 15:50, Hesham Almatary wrote: > >>> Hi, > >>> > >>> I submitted a RFC patch series to be able to build RTEMS/RISC-V with > >>> LLVM/Clang. I'd appreciate your feedback on that. > >>> > >>> A sample configure line to build RTEMS with LLVM/Clang is: > >>> > >>> ../rtems/configure --target=riscv-rtems6 > >>> --enable-rtemsbsp=rv64imafdc_clang CC_FOR_TARGET="clang" > >>> CXX_FOR_TARGET="clang++" AR_FOR_TARGET="llvm-ar" > >> > >> Could you provide me a 64-bit Linux binary installation of your clang > >> toolchain so that I can test it locally? > >> > > https://drive.google.com/file/d/1I0WHOMT2CCkxn_9mz7_WxEXXgCp6yNab/view?usp=sharing > > thanks, you can delete the file if you want. > > > > > You can you also to build it yourself from source here > > https://github.com/CTSRD-CHERI/llvm-project > > > >>> > >>> NEWLIB_SYSROOT env variable needs to point to where newlib is > >>> installed while configuring/building RTEMS. > >> > >> To which directory NEWLIB_SYSROOT in the /opt/rtems/5 installation tree > >> must this point? > >> > > riscv-rtems5. Or the corresponding multilib directory for your RISC-V BSP. > > So, if I use --sysroot=/opt/rtems/5/riscv-rtems5, then clang will pick > up /opt/rtems/5/riscv-rtems5/include for the headers and > /opt/rtems/5/riscv-rtems5/lib for the libraries. I guess this works only > for the default multilib. What do I have to do to use another multilib? > Add a -L/build/rtems/5/riscv-rtems5/lib/rv32im/ilp32 before the > --sysroot? Why don't you use -I and -L instead of the --sysroot? This > --sysroot seems to me quite unsafe in combination with multilibs. > You're right. --sysroot would only work for the default build. Normally I build newlib with Clang for each RTEMS BSP I build since Clang/newlib isn't yet able to build multilib.That's definitely something that can be changed. We can remove this -sysroot requirement and ask the user to provide -I and -L in the CFLAGS while configuring. Does that make more sense to you?
> I tried to to this, unfortunately it doesn't work with assembler files: > > [ 65/3840] Compiling cpukit/score/cpu/riscv/riscv-counter.S > 08:12:49 runner ['/build/rtems-clang-riscv/sdk/bin/clang', '-DASM', > '-target', 'riscv32-unknown-rtems6', '-Icpukit/include', > '-I../../../cpukit/include', '-Icpukit/score/cpu/riscv/include', > '-I../../../cpukit/score/cpu/riscv/include', > '../../../cpukit/score/cpu/riscv/riscv-counter.S', > 'cpukit/score/cpu/riscv/riscv-counter.S.20.o'] > clang-10: error: invalid argument 'missing --sysroot= option' not > allowed with 'rtems driver' > > For C files, it is not an issue: > > [ 63/3840] Compiling bsps/riscv/riscv/clock/clockdrv.c > 08:23:20 runner ['/build/rtems-clang-riscv/sdk/bin/clang', '-MMD', > '-Wmissing-prototypes', '-Wimplicit-function-declaration', > '-Wstrict-prototypes', '-Wnested-externs', '-Wall', '-O2', '-g', > '-fdata-sections', '-ffunction-sections', '-target', > 'riscv32-unknown-rtems6', '-I/build/rtems/5/riscv-rtems5/include', > '-Icpukit/include', '-I../../../cpukit/include', > '-Icpukit/score/cpu/riscv/include', > '-I../../../cpukit/score/cpu/riscv/include', '-Ibsps/include', > '-I../../../bsps/include', '-Ibsps/riscv/include', > '-I../../../bsps/riscv/include', '-Ibsps/riscv/riscv/include', > '-I../../../bsps/riscv/riscv/include', > '../../../bsps/riscv/riscv/clock/clockdrv.c', '-c', > '-o/home/EB/sebastian_h/git-rtems-5/build/riscv/rv32imac/bsps/riscv/riscv/clock/clockdrv.c.5.o', > '-DHAVE_CONFIG_H=1'] > > This looks like a bug in the RTEMS clang driver. Are you able to fix it? > > -- > Sebastian Huber, embedded brains GmbH > > Address : Dornierstr. 4, D-82178 Puchheim, Germany > Phone : +49 89 189 47 41-16 > Fax : +49 89 189 47 41-09 > E-Mail : sebastian.hu...@embedded-brains.de > PGP : Public key available on request. > > Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel