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

FS#3328 - ucert: dyld: Library not loaded: libjson-c.5.dylib on macOS #8532

Closed
openwrt-bot opened this issue Sep 6, 2020 · 3 comments
Closed
Labels

Comments

@openwrt-bot
Copy link

httpstorm:

Supply the following if possible:

  • Device problem occurs on
    macOS X 10.15.6

  • Software versions of OpenWrt/LEDE release, packages, etc.
    OpenWRT master 252197f
    ucert 2020-05-24 00b921d80ac0dc47339305d803f865ff43c56d63
    json-c 0.14

  • Steps to reproduce
    Clone the OpenWRT.git and try to compile it on macOS X 10.15.6

cd /Volumes/WRT3200.test rm -rf openwrt git clone https://github.com/openwrt/openwrt.git cd openwrt ./scripts/feeds update -a ./scripts/feeds install -a make defconfig make menuconfig # Select any target, e.g. Target System = Marvel EBU Armada, Target Profile = Linksys WRT3200ACM # the multi-threaded build fails, but saves some time make -j 12 make V=sc

...
make[3]: Entering directory '/Volumes/WRT3200.test/openwrt/package/base-files'
...
[ -s /Volumes/WRT3200.test/openwrt/key-build.ucert ] || /Volumes/WRT3200.test/openwrt/staging_dir/host/bin/ucert -I -c /Volumes/WRT3200.test/openwrt/key-build.ucert -p /Volumes/WRT3200.test/openwrt/key-build.pub -s /Volumes/WRT3200.test/openwrt/key-build
dyld: Library not loaded: libjson-c.5.dylib
Referenced from: /Volumes/WRT3200.test/openwrt/staging_dir/host/bin/ucert
Reason: image not found
bash: line 1: 22681 Abort trap: 6 /Volumes/WRT3200.test/openwrt/staging_dir/host/bin/ucert -I -c /Volumes/WRT3200.test/openwrt/key-build.ucert -p /Volumes/WRT3200.test/openwrt/key-build.pub -s /Volumes/WRT3200.test/openwrt/key-build
make[3]: *** [Makefile:229: /Volumes/WRT3200.test/openwrt/build_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/linux-mvebu_cortexa9/base-files/.configured_4a9c46a6557bf47f111f9c7c4b182824_8e081b74cf069e1e6800a5bbcbb282f0] Error 134
make[3]: Leaving directory '/Volumes/WRT3200.test/openwrt/package/base-files'
time: package/base-files/compile#0.50#0.28#0.85
make[2]: *** [package/Makefile:113: package/base-files/compile] Error 2
make[2]: Leaving directory '/Volumes/WRT3200.test/openwrt'
make[1]: *** [package/Makefile:107: /Volumes/WRT3200.test/openwrt/staging_dir/target-arm_cortex-a9+vfpv3-d16_musl_eabi/stamp/.package_compile] Error 2
make[1]: Leaving directory '/Volumes/WRT3200.test/openwrt'
make: *** [/Volumes/WRT3200.test/openwrt/include/toplevel.mk:235: world] Error 2

Dependancies for ucert
otool -L staging_dir/host/bin/ucert
staging_dir/host/bin/ucert:
@rpath/libubox.dylib (compatibility version 0.0.0, current version 0.0.0)
@rpath/libblobmsg_json.dylib (compatibility version 0.0.0, current version 0.0.0)
libjson-c.5.dylib (compatibility version 5.0.0, current version 5.0.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1281.100.1)

ls -l staging_dir/host/lib/libjson-c*
-rwxr-xr-x 1 g staff 65680 Sep 6 23:12 staging_dir/host/lib/libjson-c.5.0.0.dylib
lrwxr-xr-x 1 g staff 21 Sep 6 23:12 staging_dir/host/lib/libjson-c.5.dylib -> libjson-c.5.0.0.dylib
lrwxr-xr-x 1 g staff 17 Sep 6 23:12 staging_dir/host/lib/libjson-c.dylib -> libjson-c.5.dylib

Workaround

cp staging_dir/host/lib/libjson-c.5.dylib package/base-files/
make -j 12

@openwrt-bot
Copy link
Author

httpstorm:

Caused by libjson-c which did not include RPATH, so the ucert tool did not know how to locate the library. Attached is a patch that allows RPATH to be embedded and corrects the build errors on macOS. Please merge!

@openwrt-bot
Copy link
Author

httpstorm:

pull request
#3391

@openwrt-bot
Copy link
Author

httpstorm:

Fixed in 5752ccb

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant