#4128 closed defect (fixed)

all griscv variants fail to build on master

Reported by: Joel Sherrill Owned by: Jiri Gaisler
Priority: normal Milestone: 6.1
Component: bsps Version: 6
Severity: normal Keywords: wafblocker
Cc: Blocked By:
Blocking:

Description

Looks to be independent of waf or autoconf or configuration settings since a code issue in the BSP:

./../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c: In function 'grlib_clock_initialize':
../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:174:10: warning: implicit declaration of function 'grlib_irqmp_has_timestamp' [-Wimplicit-function-declaration]
  174 |     if (!grlib_irqmp_has_timestamp(irqmp_ts)) {
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:174:10: warning: nested extern declaration of 'grlib_irqmp_has_timestamp' [-Wnested-externs]
../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:175:17: error: 'GRLIB_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT' undeclared (first use in this function); did you mean 'LEON3_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT'?
  175 |       bsp_fatal(GRLIB_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT);
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      |                 LEON3_FATAL_CLOCK_NO_IRQMP_TIMESTAMP_SUPPORT
../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:175:17: note: each undeclared identifier is reported only once for each function it appears in
gmake[6]: *** [clockdrv.o] Error 1

Attachments (1)

0001-bsps-include-bsp-fatal.h-Add-GRLIB-specific-fatal-er.patch (946 bytes) - added by Joel Sherrill on 10/07/20 at 15:36:19.
Add GRLIB fatal error

Download all attachments as: .zip

Change History (5)

Changed on 10/07/20 at 15:36:19 by Joel Sherrill

Add GRLIB fatal error

comment:1 Changed on 10/07/20 at 15:38:09 by Joel Sherrill

With the attached patch, it builds further but fails with this which appears to be triggered because SMP is enabled (configure command below):

riscv-rtems6-gcc  -march=rv32imafd -mabi=ilp32d -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/riscv/griscv -B/home/joel/rtems-cron-6/rtems/bsps/riscv/griscv/start -specs bsp_specs -qrtems -L./../../cpukit -L/home/joel/rtems-cron-6/rtems/bsps/riscv/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o base_sp.exe base_sp/base_sp-init.o base_sp/base_sp-apptask.o ./../../lib/libbsp/riscv/griscv/librtemsbsp.a ./../../cpukit/librtemscpu.a ./../../cpukit/librtemstest.a 
/home/joel/rtems-cron-6/tools/6/lib/gcc/riscv-rtems6/10.2.1/../../../../riscv-rtems6/bin/ld: ./../../lib/libbsp/riscv/griscv/librtemsbsp.a(clockdrv.o): in function `grlib_clock_initialize':
/home/joel/rtems-cron-6/b-griscv/riscv-rtems6/c/griscv/lib/libbsp/riscv/griscv/../../../../../../../../rtems/c/src/lib/libbsp/riscv/griscv/../../../../../../bsps/riscv/griscv/clock/clockdrv.c:167: undefined reference to `grlib_irqmp_has_timestamp'
collect2: error: ld returned 1 exit status
gmake[5]: *** [base_sp.exe] Error 1

The configuration is:

../rtems/configure --target=riscv-rtems6 --enable-rtemsbsp=griscv --prefix=/home/joel/rtems-cron-6/tools/6/bsp-install --disable-networking --enable-posix --enable-smp --disable-multiprocessing --enable-rtems-debug --enable-profiling --enable-tests --enable-cxx --enable-maintainer-mode

comment:2 Changed on 10/07/20 at 15:38:22 by Joel Sherrill

Owner: set to Jiri Gaisler
Status: newassigned

comment:3 in reply to:  2 Changed on 10/08/20 at 07:44:57 by Jiri Gaisler

Replying to Joel Sherrill:

I don't get this far, my compilation fails on:

riscv-rtems6-gcc -march=rv32imafd -mabi=ilp32d -O2 -g -ffunction-sections -fdata-sections -Wall -Wmissing-prototypes -Wimplicit-function-declaration -Wstrict-prototypes -Wnested-externs -B./../../lib/libbsp/riscv/griscv -B/home/jiri/ibm/src/rtems/rtems/bsps/riscv/griscv/start -specs bsp_specs -qrtems -L./../../cpukit -L/home/jiri/ibm/src/rtems/rtems/bsps/riscv/shared/start -Wl,--wrap=printf -Wl,--wrap=puts -Wl,--wrap=putchar -Wl,--gc-sections -o base_sp.exe base_sp/base_sp-init.o base_sp/base_sp-apptask.o ./../../lib/libbsp/riscv/griscv/librtemsbsp.a ./../../cpukit/librtemscpu.a ./../../cpukit/librtemstest.a
/home/jiri/src/rtems/6/bin/../lib/gcc/riscv-rtems6/10.2.1/../../../../riscv-rtems6/bin/ld: ./../../cpukit/librtemscpu.a(free.o): in function `free':
/home/jiri/ibm/src/rtems/rtems/c/src/../../cpukit/libcsupport/src/free.c:79: undefined reference to `RTEMS_Malloc_Heap'

I updated rsb and rtems from git head and re-built the tool-chain today ...

comment:4 Changed on 10/10/20 at 12:01:36 by Sebastian Huber <sebastian.huber@…>

Resolution: fixed
Status: assignedclosed

In e1a0e0c3/rtems:

grlib: Add and use irqmp_has_timestamp()

Replace leon3_irqmp_has_timestamp() with irqmp_has_timestamp() and move
it to grlib.h.

Close #4128.

Note: See TracTickets for help on using tickets.