Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

undefined references to `sys_rand32_get' #15565

Closed
lorepieri8 opened this issue Apr 19, 2019 · 6 comments
Closed

undefined references to `sys_rand32_get' #15565

lorepieri8 opened this issue Apr 19, 2019 · 6 comments
Labels
bug The issue is a bug, or the PR is fixing a bug

Comments

@lorepieri8
Copy link

Describe the bug
I get undefined references to sys_rand32_get'` after building a zephyr app with qemu_cortex_m3 or qemu_x86, while the same setup seems working for nrf52840_pca10056.

To Reproduce
Steps to reproduce the behavior:

  1. https://github.com/AnyLedger/anyledger-wallet, commit 8fb0247e1ac3d61d20802eaf2f81c2511039174e
  2. zephyr build instructions, with zephyr version picked using:
git clone https://github.com/zephyrproject-rtos/zephyr.git
DATE='Nov 7 2018'
git rev-list -1 --before="$DATE" master | xargs -Iz git checkout z
  1. cmake -GNinja -DBOARD=qemu_cortex_m3 -DBUILD_XCOMPILE=1 ../
  2. ninja
  3. See error

Expected behavior
ninja completing the build

Screenshots or console output

libapp.a(compat.c.obj): In function `random32':
/Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/samples/anyledger/anyledger-wallet/build/../zephyr/compat.c:26: undefined reference to `sys_rand32_get'
zephyr/libzephyr.a(coap.c.obj): In function `coap_next_token':
/Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/subsys/net/lib/coap/coap.c:1484: undefined reference to `sys_rand32_get'
/Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/subsys/net/lib/coap/coap.c:1485: undefined reference to `sys_rand32_get'
zephyr/libzephyr.a(slip.c.obj): In function `slip_iface_init':
/Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/drivers/net/slip.c:488: undefined reference to `sys_rand32_get'
zephyr/subsys/net/ip/libsubsys__net__ip.a(net_context.c.obj): In function `find_available_port':
/Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/subsys/net/ip/net_context.c:98: undefined reference to `sys_rand32_get'
zephyr/subsys/net/ip/libsubsys__net__ip.a(net_if.c.obj):/Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/subsys/net/ip/net_if.c:2008: more undefined references to `sys_rand32_get' follow
collect2: error: ld returned 1 exit status
%
ninja: build stopped: subcommand failed.

Environment (please complete the following information):

  • OS: MacOS
  • ZEPHYR_TOOLCHAIN_VARIANT=gnuarmemb
    -GNUARMEMB_TOOLCHAIN_PATH="~/opt/gcc-arm-none-eabi-7-2018-q2-update/"

Additional context

It works with
cmake -GNinja -DBOARD= nrf52840_pca10056 -DBUILD_XCOMPILE=1 ../
while it doesn't work for
cmake -GNinja -DBOARD= qemu_x86 -DBUILD_XCOMPILE=1 ../

@lorepieri8 lorepieri8 added the bug The issue is a bug, or the PR is fixing a bug label Apr 19, 2019
@jukkar
Copy link
Member

jukkar commented Apr 19, 2019

Try to set these in prj.conf file

CONFIG_ENTROPY_GENERATOR=y
CONFIG_TEST_RANDOM_GENERATOR=y

@lorepieri8
Copy link
Author

Thanks @jukkar.

1- This indeed fixes the qemu_cortex_m3 ninja. How did you figure out about those config options? Where can I get more info on how to identify which config=y I need?

2- qemu_x86 is still failing. I think that the problem is the toolchain that I'm using.

FAILED: zephyr/CMakeFiles/offsets.dir/arch/x86/core/offsets/offsets.c.obj 
ccache /Users/lorenzo/opt/gcc-arm-none-eabi-7-2018-q2-update/bin/arm-none-eabi-gcc -DKERNEL -D_FORTIFY_SOURCE=2 -D__ZEPHYR__=1 -I../../../../kernel/include -I../../../../arch/x86/include -I../../../../soc/x86/ia32 -I../../../../soc/x86/ia32/include -I../../../../soc/x86/include -I../../../../boards/x86/qemu_x86 -I../../../../include -I../../../../include/drivers -Izephyr/include/generated -I../../../../lib/libc/minimal/include -I../../../../ext/lib/fnmatch/. -I../../../../subsys/net/lib/coap/. -I../../../../subsys/net/lib/lwm2m/. -isystem /Users/lorenzo/opt/gcc-arm-none-eabi-7-2018-q2-update/bin/../lib/gcc/arm-none-eabi/7.3.1/include -isystem /Users/lorenzo/opt/gcc-arm-none-eabi-7-2018-q2-update/bin/../lib/gcc/arm-none-eabi/7.3.1/include-fixed -Os -g -Wall -Wformat -Wformat-security -Wno-format-zero-length -imacros /Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/samples/anyledger/anyledger-wallet/build/zephyr/include/generated/autoconf.h -ffreestanding -Wno-main -fno-asynchronous-unwind-tables -fno-pie -fno-pic -fno-strict-overflow -Wno-pointer-sign -Wno-unused-but-set-variable -fno-reorder-functions -fno-defer-pop -Werror=implicit-int -Wpointer-arith -ffunction-sections -fdata-sections -std=c99 -MD -MT zephyr/CMakeFiles/offsets.dir/arch/x86/core/offsets/offsets.c.obj -MF zephyr/CMakeFiles/offsets.dir/arch/x86/core/offsets/offsets.c.obj.d -o zephyr/CMakeFiles/offsets.dir/arch/x86/core/offsets/offsets.c.obj   -c /Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/arch/x86/core/offsets/offsets.c
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s: Assembler messages:
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:36: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:42: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:48: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:54: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:60: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:66: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:72: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:78: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:84: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:90: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:96: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:102: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:108: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:114: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:120: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:126: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:132: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:138: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:144: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:150: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:156: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:162: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:168: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:174: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:180: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:187: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:193: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:199: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:205: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:211: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:217: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:223: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:229: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:235: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:241: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:247: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:253: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:259: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:265: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:271: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:277: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:283: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:289: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:295: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:301: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:307: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:313: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:319: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:325: Error: unrecognized symbol type ""
/var/folders/f1/mytd0rsx76lbmj1fdgvwcp_40000gn/T//ccnprfN3.s:331: Error: unrecognized symbol type ""
[15/219] Performing download step (git clone) for 'trezor-crypto-lib'
Cloning into 'trezor-crypto'...
Already on 'master'
Your branch is up to date with 'origin/master'.
Submodule 'tests/wycheproof' (https://github.com/google/wycheproof) registered for path 'tests/wycheproof'
Cloning into '/Users/lorenzo/gitHubRepo/nov7zephyr/zephyr/samples/anyledger/anyledger-wallet/build/thirdparty/trezor-crypto/tests/wycheproof'...
Submodule path 'tests/wycheproof': checked out '2904be69e9d666bf3064fdc15093747e695cfae6'
ninja: build stopped: subcommand failed.

@andrewboie
Copy link
Contributor

I think that the problem is the toolchain that I'm using.

You can't compile qemu_x86 with a gcc-arm-none-eabi-7-2018-q2-update compiler.

@jukkar
Copy link
Member

jukkar commented Apr 23, 2019

How did you figure out about those config options?

I just looked existing networking samples for clues, and these two options were used in many places when compiling for qemu.

@lorepieri8
Copy link
Author

I see. I hoped there was a simpler way.
I will open a feature request. It would be useful to know which config options are needed for given functions.

@dieselburner
Copy link
Contributor

dieselburner commented May 8, 2020

FYI: I get this error on current master when building google mqtt demo for nucleo_f756zg target.

Solved by adding following into prj.conf:

CONFIG_ENTROPY_GENERATOR=y
CONFIG_TEST_RANDOM_GENERATOR=y

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug The issue is a bug, or the PR is fixing a bug
Projects
None yet
Development

No branches or pull requests

4 participants