iot-lab / iot-lab-contiki-ng

IoT-LAB Contiki-NG port
3 stars 6 forks source link

rpl-udp example implicit declaration of function 'random_rand' error #15

Closed fkerem closed 3 years ago

fkerem commented 3 years ago

Trying to build Contiki's rpl-udp (/home/jovyan/contiki-ng/iot-lab-contiki-ng/contiki-ng/examples/rpl-udp) example but it causes "implicit declaration of function" error:

make: Entering directory '/home/jovyan/contiki-ng/iot-lab-contiki-ng/contiki-ng/examples/rpl-udp'
  MKDIR     build/iotlab/m3/obj
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/dev/xmem.c
  CC        ../../os/storage/cfs/cfs-coffee.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/dev/acc-mag-sensor.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/dev/fake-button-sensor.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/dev/gyr-sensor.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/dev/light-sensor.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/dev/pressure-sensor.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/platform/iotlab-m3/iotlab-m3.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/platform/iotlab-m3/iotlab-m3_drivers.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/platform/iotlab-m3/iotlab-m3_lib.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/platform/iotlab-m3/iotlab-m3_periph.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/periph/lsm303dlhc/lsm303dlhc.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/periph/lps331ap/lps331ap.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/periph/l3g4200d/l3g4200d.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/periph/isl29020/isl29020.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/periph/n25xxx/n25xxx.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/cortex-m3/boot.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/cortex-m3/nvic.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32/dma.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32/i2c.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32/spi.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32/timer.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32/uart.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32/unique_id.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32/usb.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32/watchdog.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/adc.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/afio.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/boot.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/exti.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/flash.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/gpio.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/rcc.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/rcc_clock.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/rcc_sysclk.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/rtc.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/sdio.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/drivers/stm32f1xx/stm32f1xx.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/lib/softtimer/soft_timer_delay.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/openlab/periph/rf2xx/rf2xx.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./platform.c
  CC        ../../os/dev/leds.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./int-master.c
  CC        ../../os/lib/sensors.c
  CC        ../../os/dev/slip.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./clock-systick.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./watchdog.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./radio-rf2xx.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/dev/uart1.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./slip-arch.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./openlab-port.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./rtimer-arch.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/./leds-arch.c
  CC        /home/jovyan/contiki-ng/iot-lab-contiki-ng/arch/platform/iotlab/m3/platform-sensors.c
  CC        ../../os/contiki-main.c
  CC        ../../os/sys/autostart.c
  CC        ../../os/sys/ctimer.c
  CC        ../../os/sys/atomic.c
  CC        ../../os/sys/energest.c
  CC        ../../os/sys/etimer.c
  CC        ../../os/sys/log.c
  CC        ../../os/sys/mutex.c
  CC        ../../os/sys/stimer.c
  CC        ../../os/sys/compower.c
  CC        ../../os/sys/process.c
  CC        ../../os/sys/rtimer.c
  CC        ../../os/sys/node-id.c
  CC        ../../os/sys/timer.c
  CC        ../../os/sys/stack-check.c
  CC        ../../os/lib/dbl-circ-list.c
  CC        ../../os/lib/crc16.c
  CC        ../../os/lib/ifft.c
  CC        ../../os/lib/ccm-star.c
  CC        ../../os/lib/dbl-list.c
  CC        ../../os/lib/ringbufindex.c
  CC        ../../os/lib/list.c
  CC        ../../os/lib/circular-list.c
  CC        ../../os/lib/aes-128.c
  CC        ../../os/lib/trickle-timer.c
  CC        ../../os/lib/memb.c
  CC        ../../os/lib/heapmem.c
  CC        ../../os/lib/random.c
  CC        ../../os/lib/assert.c
  CC        ../../os/lib/ringbuf.c
  CC        ../../os/dev/button-hal.c
  CC        ../../os/dev/serial-line.c
  CC        ../../os/dev/spi.c
  CC        ../../os/dev/nullradio.c
  CC        ../../os/dev/gpio-hal.c
  CC        ../../os/net/queuebuf.c
  CC        ../../os/net/nbr-table.c
  CC        ../../os/net/packetbuf.c
  CC        ../../os/net/netstack.c
  CC        ../../os/net/linkaddr.c
  CC        ../../os/net/net-debug.c
  CC        ../../os/net/link-stats.c
  CC        ../../os/net/mac/mac-sequence.c
  CC        ../../os/net/mac/mac.c
  CC        ../../os/net/mac/framer/frame802154e-ie.c
  CC        ../../os/net/mac/framer/framer-802154.c
  CC        ../../os/net/mac/framer/nullframer.c
  CC        ../../os/net/mac/framer/frame802154.c
  CC        ../../os/net/mac/csma/csma-security.c
  CC        ../../os/net/mac/csma/anti-replay.c
  CC        ../../os/net/mac/csma/csma.c
  CC        ../../os/net/mac/csma/csma-output.c
  CC        ../../os/net/mac/csma/ccm-star-packetbuf.c
  CC        ../../os/net/ipv6/uipbuf.c
  CC        ../../os/net/ipv6/uip-icmp6.c
  CC        ../../os/net/ipv6/uip-sr.c
  CC        ../../os/net/ipv6/uip-ds6.c
  CC        ../../os/net/ipv6/uip-packetqueue.c
  CC        ../../os/net/ipv6/tcp-socket.c
  CC        ../../os/net/ipv6/ip64-addr.c
  CC        ../../os/net/ipv6/uip-udp-packet.c
  CC        ../../os/net/ipv6/uip-ds6-route.c
  CC        ../../os/net/ipv6/psock.c
  CC        ../../os/net/ipv6/tcpip.c
  CC        ../../os/net/ipv6/uip6.c
  CC        ../../os/net/ipv6/uip-ds6-nbr.c
  CC        ../../os/net/ipv6/uip-nameserver.c
  CC        ../../os/net/ipv6/uip-nd6.c
  CC        ../../os/net/ipv6/udp-socket.c
  CC        ../../os/net/ipv6/simple-udp.c
  CC        ../../os/net/ipv6/sicslowpan.c
  CC        ../../os/net/ipv6/uiplib.c
  CC        ../../os/net/routing/rpl-lite/rpl-icmp6.c
  CC        ../../os/net/routing/rpl-lite/rpl-of0.c
  CC        ../../os/net/routing/rpl-lite/rpl-neighbor.c
  CC        ../../os/net/routing/rpl-lite/rpl-timers.c
  CC        ../../os/net/routing/rpl-lite/rpl-ext-header.c
  CC        ../../os/net/routing/rpl-lite/rpl.c
  CC        ../../os/net/routing/rpl-lite/rpl-nbr-policy.c
  CC        ../../os/net/routing/rpl-lite/rpl-mrhof.c
  CC        ../../os/net/routing/rpl-lite/rpl-dag.c
  CC        ../../os/net/routing/rpl-lite/rpl-dag-root.c
  AR        build/iotlab/m3/contiki-ng-iotlab.a
  CC        udp-client.c
udp-client.c: In function 'process_thread_udp_client_process':
udp-client.c:55:31: error: implicit declaration of function 'random_rand'; did you mean 'random_rand32'? [-Werror=implicit-function-declaration]
   etimer_set(&periodic_timer, random_rand() % SEND_INTERVAL);
                               ^~~~~~~~~~~
                               random_rand32
cc1: all warnings being treated as errors
../../Makefile.include:384: recipe for target 'udp-client.o' failed
make: *** [udp-client.o] Error 1
make: Leaving directory '/home/jovyan/contiki-ng/iot-lab-contiki-ng/contiki-ng/examples/rpl-udp'
fkerem commented 3 years ago

I suppressed the warning by setting Werror=0 in Makefile.include, but is this OK?

aabadie commented 3 years ago

I suppressed the warning by setting Werror=0 in Makefile.include, but is this OK?

It doesn't really fix the issue, it just tells gcc to not treat the warnings as errors.

I'm not an expert in contiki but that sounds like a missing include. Maybe just add #include "random.h" at the beginning of udp-client.c ?

fkerem commented 3 years ago

I suppressed the warning by setting Werror=0 in Makefile.include, but is this OK?

It doesn't really fix the issue, it just tells gcc to not treat the warnings as errors.

I'm not an expert in contiki but that sounds like a missing include. Maybe just add #include "random.h" at the beginning of udp-client.c ?

It's already there. :(