andrjohns / QuickJSR

R interface for the QuickJS lightweight javascript engine
Other
15 stars 0 forks source link

32-bit platforms need linking to libatomic #1

Closed barracuda156 closed 1 year ago

barracuda156 commented 1 year ago
** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘QuickJSR’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/opt/local/var/macports/build/_opt_PPCRosettaPorts_R_R-QuickJSR/R-QuickJSR/work/destroot/opt/local/Library/Frameworks/R.framework/Versions/4.2/Resources/library/00LOCK-QuickJSR/00new/QuickJSR/libs/QuickJSR.so':
  dlopen(/opt/local/var/macports/build/_opt_PPCRosettaPorts_R_R-QuickJSR/R-QuickJSR/work/destroot/opt/local/Library/Frameworks/R.framework/Versions/4.2/Resources/library/00LOCK-QuickJSR/00new/QuickJSR/libs/QuickJSR.so, 6): Symbol not found: ___atomic_fetch_add_8
  Referenced from: /opt/local/var/macports/build/_opt_PPCRosettaPorts_R_R-QuickJSR/R-QuickJSR/work/destroot/opt/local/Library/Frameworks/R.framework/Versions/4.2/Resources/library/00LOCK-QuickJSR/00new/QuickJSR/libs/QuickJSR.so
  Expected in: dynamic lookup

Configure should pass -latomic when 8-byte atomics is not hardware-supported.

andrjohns commented 1 year ago

So I can setup the checks correctly, what's your output from:

uname -s
uname -m
barracuda156 commented 1 year ago

@andrjohns Thank you for responding!

36-171% uname -s
Darwin
36-171% uname -m
Power Macintosh
36-171% uname -p
powerpc
barracuda156 commented 1 year ago

P. S. I have seen elsewhere that arm32 and mips also require -latomic, but cannot verify that personally. I assume i386 would need it too, at least with GCC. But my personal concern is just ppc (= ppc32).

andrjohns commented 1 year ago

Can you try this branch: https://github.com/andrjohns/QuickJSR/tree/ppc-32bit

barracuda156 commented 1 year ago

Yes, that works perfectly fine, the flag is passed, installation succeeds.

ar: creating archive ../inst/lib//libquickjs.a
/opt/local/bin/g++-mp-12 -std=gnu++14 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/opt/local/Library/Frameworks/R.framework/Resources/lib -Wl,-headerpad_max_install_names -Wl,-rpath,/opt/local/lib/libgcc -L/opt/local/lib -lMacportsLegacySupport -arch ppc -o QuickJSR.so init.o qjs.o qjs_impl.o -L../inst/lib// -lquickjs -latomic -F/opt/local/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
installing to /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/destroot/opt/local/Library/Frameworks/R.framework/Versions/4.2/Resources/library/00LOCK-QuickJSR/00new/QuickJSR/libs
** R
** inst
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (QuickJSR)
--->  Installing R-QuickJSR @1.0.4_0
Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/destroot" && /usr/bin/tar -cvf - . | /opt/local/bin/lbzip2 -c9 > /opt/local/var/macports/software/R-QuickJSR/R-QuickJSR-1.0.4_0.darwin_10.ppc.tbz2
andrjohns commented 1 year ago

Merged the fix to main

charles-plessy commented 10 months ago

It looks like the fix may also be needed on some 32-bit ARM platforms: see what happens on Debian's armel port.

** testing if installed package can be loaded from temporary location
Error: package or namespace load failed for ‘QuickJSR’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/<<PKGBUILDDIR>>/debian/r-cran-quickjsr/usr/lib/R/site-library/00LOCK-r-cran-quickjsr-1.0.7/00new/QuickJSR/libs/QuickJSR.so':
  /<<PKGBUILDDIR>>/debian/r-cran-quickjsr/usr/lib/R/site-library/00LOCK-r-cran-quickjsr-1.0.7/00new/QuickJSR/libs/QuickJSR.so: undefined symbol: __atomic_exchange_8
Error: loading failed

https://buildd.debian.org/status/fetch.php?pkg=r-cran-quickjsr&arch=armel&ver=1.0.7-1&stamp=1700642539&raw=0

barracuda156 commented 10 months ago

@charles-plessy The proper solution would be a test for support of 8-byte atomics without libatomic and then a conditional dependency. This would fix 32-bit arm, mips and Rosetta (where uname will have Intel, not PowerPC). I do not really know however how to implement such test outside of CMake build system.

andrjohns commented 10 months ago

@charles-plessy CRAN version updated to always link to libatomic on 32-bit distros

barracuda156 commented 10 months ago

P. S. I not sure how this gonna work with Clang on i386, but perhaps it is not a big concern. For powerpc that was never an issue since at least on Darwin we are sure that the compiler is GCC, and GCC always gonna have libatomic. Clang does not have it, but uses compiler-rt library (well, I guess so). I cannot test at the moment whether the linker dismisses the flag or the build gonna fail due to a missing lib.

charles-plessy commented 9 months ago

Thanks! The new release solved the problem on our side :)

ryandesign commented 4 months ago

I not sure how this gonna work with Clang on i386

It causes build failure:

ld: library not found for -latomic
clang: error: linker command failed with exit code 1 (use -v to see invocation)
barracuda156 commented 4 months ago

@ryandesign @andrjohns It should probably be restricted to GCC. (arm32 issue on Debian used gcc, from the log.)

I am not sure if Clang can use libatomic in principle, but it is probably something rather exotic if possible at all.

andrjohns commented 4 months ago

@ryandesign @barracuda156 Can you let me know if this branch fixes things: https://github.com/andrjohns/QuickJSR/tree/clang32-atomics

barracuda156 commented 4 months ago

@andrjohns Applying 5393e43bb5ccac8e41e19e976fe5baa9e4cd892f patch onto 1.1.3 does not work for a build with GCC, -latomic does not get passed and linking fails. Should I pick something else too?

andrjohns commented 4 months ago

Can you post the full build log with the failure?

barracuda156 commented 4 months ago

@andrjohns Sure:

:debug:main Starting logging for R-QuickJSR @1.1.3_1
:debug:sysinfo Mac OS X 10.6 (darwin/10.0.0d2) arch powerpc
:debug:sysinfo MacPorts 2.9.99
:debug:sysinfo Xcode 3.2, CLT none
:debug:sysinfo SDK 10.6
:debug:sysinfo MACOSX_DEPLOYMENT_TARGET: 10.6
:msg:main --->  Computing dependencies for R-QuickJSR:info:main .:debug:main Searching for dependency: gcc13
:debug:main Found Dependency: receipt exists for gcc13
:debug:main Searching for dependency: R
:debug:main Found Dependency: receipt exists for R
:debug:main Searching for dependency: R-jsonlite
:debug:main Found Dependency: receipt exists for R-jsonlite
:debug:main Searching for dependency: R-R6
:debug:main Found Dependency: receipt exists for R-R6
:debug:main Searching for dependency: R-Rcpp
:debug:main Found Dependency: receipt exists for R-Rcpp
:debug:main Found Dependency: path: /opt/local/share/doc/libgcc filename: README regex: ^README$
:debug:main Searching for dependency: libgcc
:debug:main Didn't find receipt, going to depspec regex for: libgcc
:debug:main Found Dependency: path: /opt/local/share/doc/libgcc filename: README regex: ^README$
:debug:main Searching for dependency: legacy-support
:debug:main Found Dependency: receipt exists for legacy-support
:debug:main Searching for dependency: R-CRAN-recommended
:debug:main Found Dependency: receipt exists for R-CRAN-recommended
:debug:main Executing org.macports.main (R-QuickJSR)
:debug:main Skipping completed org.macports.fetch (R-QuickJSR)
:debug:main Skipping completed org.macports.checksum (R-QuickJSR)
:debug:main Skipping completed org.macports.extract (R-QuickJSR)
:debug:main Skipping completed org.macports.patch (R-QuickJSR)
:debug:configure configure phase started at Mon May  6 14:46:27 CST 2024
:notice:configure --->  Configuring R-QuickJSR
:debug:configure Preferred compilers: macports-gcc-13 macports-gcc-12 macports-gcc-11 macports-gcc-10 macports-gcc-9 macports-gcc-8 macports-gcc-7 macports-gcc-6 macports-gcc-5
:debug:configure Using compiler 'MacPorts GCC 13'
:debug:configure Executing proc-pre-org.macports.configure-configure-0
:debug:configure Found Dependency: path: /opt/local/share/doc/libgcc filename: README regex: ^README$
:debug:configure Active variants check for source-type install considers depends_fetch depends_extract depends_lib depends_build depends_run: R-jsonlite R-R6 R-Rcpp libgcc-powerpc legacy-support R-CRAN-recommended gcc13 R
:debug:configure Executing proc-pre-org.macports.configure-configure-1
:debug:configure compilers.enforce_c list: 
:debug:configure compilers.enforce_fortran list: 
:debug:configure compilers.enforce_some_fortran list: 
:debug:configure compilers PG: GCC version reports being UNKNOWN to MacPorts
:debug:configure compilers PG: RPATH added to ldflags as GCC version is UNKNOWN
:debug:configure Executing org.macports.configure (R-QuickJSR)
:debug:configure Environment: 
:debug:configure CC='/opt/local/bin/gcc-mp-13'
:debug:configure CC_PRINT_OPTIONS='YES'
:debug:configure CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/.CC_PRINT_OPTIONS'
:debug:configure CFLAGS='-pipe -Os -arch ppc'
:debug:configure CPATH='/opt/local/include'
:debug:configure CPLUS_INCLUDE_PATH='/opt/local/include/LegacySupport'
:debug:configure CPPFLAGS='-isystem/opt/local/include/LegacySupport -I/opt/local/include'
:debug:configure CXX='/opt/local/bin/g++-mp-13'
:debug:configure CXXFLAGS='-pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc'
:debug:configure C_INCLUDE_PATH='/opt/local/include/LegacySupport'
:debug:configure DEVELOPER_DIR='/Developer'
:debug:configure DYLD_LIBRARY_PATH='/opt/local/lib/libgcc'
:debug:configure F77='/opt/local/bin/gfortran-mp-13'
:debug:configure F90='/opt/local/bin/gfortran-mp-13'
:debug:configure F90FLAGS='-pipe -Os -m32'
:debug:configure FC='/opt/local/bin/gfortran-mp-13'
:debug:configure FCFLAGS='-pipe -Os -m32'
:debug:configure FFLAGS='-pipe -Os -m32'
:debug:configure INSTALL='/usr/bin/install -c'
:debug:configure LDFLAGS='-Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport -Wl,-rpath,/opt/local/lib/libgcc -arch ppc'
:debug:configure LIBRARY_PATH='/opt/local/lib'
:debug:configure MACOSX_DEPLOYMENT_TARGET='10.6'
:debug:configure MACPORTS_LEGACY_SUPPORT_CPPFLAGS='-isystem/opt/local/include/LegacySupport'
:debug:configure MACPORTS_LEGACY_SUPPORT_ENABLED='1'
:debug:configure MACPORTS_LEGACY_SUPPORT_LDFLAGS='-L/opt/local/lib -lMacportsLegacySupport'
:debug:configure OBJC='/opt/local/bin/gcc-mp-13'
:debug:configure OBJCFLAGS='-pipe -Os -arch ppc'
:debug:configure OBJCPLUS_INCLUDE_PATH='/opt/local/include/LegacySupport'
:debug:configure OBJCXX='/opt/local/bin/g++-mp-13'
:debug:configure OBJCXXFLAGS='-pipe -Os -D_GLIBCXX_USE_CXX11_ABI=0 -arch ppc'
:debug:configure OBJC_INCLUDE_PATH='/opt/local/include/LegacySupport'
:info:configure Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/QuickJSR" && /opt/local/bin/R CMD build . --no-manual --no-build-vignettes --keep-empty-dirs 
:debug:configure system:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/QuickJSR" && /opt/local/bin/R CMD build . --no-manual --no-build-vignettes --keep-empty-dirs 
:info:configure * checking for file ‘./DESCRIPTION’ ... OK
:info:configure * preparing ‘QuickJSR’:
:info:configure * checking DESCRIPTION meta-information ... OK
:info:configure * cleaning src
:info:configure * checking for LF line-endings in source and make files and shell scripts
:info:configure * checking for empty or unneeded directories
:info:configure * building ‘QuickJSR_1.1.3.tar.gz’
:debug:configure Executing portconfigure::configure_finish
:debug:build build phase started at Mon May  6 14:46:32 CST 2024
:notice:build --->  Building R-QuickJSR
:debug:build Executing proc-pre-org.macports.build-build-0
:info:build xinstall: mkdir /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build
:debug:build Executing org.macports.build (R-QuickJSR)
:debug:build Environment: 
:debug:build CC_PRINT_OPTIONS='YES'
:debug:build CC_PRINT_OPTIONS_FILE='/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/.CC_PRINT_OPTIONS'
:debug:build CPATH='/opt/local/include'
:debug:build CPLUS_INCLUDE_PATH='/opt/local/include/LegacySupport'
:debug:build C_INCLUDE_PATH='/opt/local/include/LegacySupport'
:debug:build DEVELOPER_DIR='/Developer'
:debug:build DYLD_LIBRARY_PATH='/opt/local/lib/libgcc'
:debug:build LIBRARY_PATH='/opt/local/lib'
:debug:build MACOSX_DEPLOYMENT_TARGET='10.6'
:debug:build MACPORTS_LEGACY_SUPPORT_CPPFLAGS='-isystem/opt/local/include/LegacySupport'
:debug:build MACPORTS_LEGACY_SUPPORT_ENABLED='1'
:debug:build MACPORTS_LEGACY_SUPPORT_LDFLAGS='-L/opt/local/lib -lMacportsLegacySupport'
:debug:build OBJCPLUS_INCLUDE_PATH='/opt/local/include/LegacySupport'
:debug:build OBJC_INCLUDE_PATH='/opt/local/include/LegacySupport'
:info:build Executing:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/QuickJSR" && /opt/local/bin/R CMD INSTALL . --library=/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build --install-tests 
:debug:build system:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/QuickJSR" && /opt/local/bin/R CMD INSTALL . --library=/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build --install-tests 
:info:build * installing *source* package ‘QuickJSR’ ...
:info:build file ‘src/Makevars’ has the wrong MD5 checksum
:info:build ** using staged installation
:info:build ** libs
:info:build using C compiler: ‘gcc-mp-13 (MacPorts gcc13 13.2.0_4+stdlib_flag) 13.2.0’
:info:build using C++ compiler: ‘g++-mp-13 (MacPorts gcc13 13.2.0_4+stdlib_flag) 13.2.0’
:info:build Warning in system2("xcrun", "--show-sdk-path", TRUE, TRUE) :
:info:build   running command ''xcrun' --show-sdk-path 2>&1' had status 64
:info:build using SDK: ‘NA’‘NA’‘NA’‘NA’‘NA’‘NA’
:info:build /opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -c quickjsr_impl.c -o quickjsr_impl.o
:info:build /opt/local/bin/g++-mp-13 -std=gnu++17 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc   -c quickjsr.cpp -o quickjsr.o
:info:build /opt/local/bin/g++-mp-13 -std=gnu++17 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc   -c init.cpp -o init.o
:info:build /opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -funsigned-char -fwrapv -std=c11 -c quickjs/cutils.c -o quickjs/cutils.o
:info:build /opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -funsigned-char -fwrapv -std=c11 -c quickjs/libbf.c -o quickjs/libbf.o
:info:build /opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -funsigned-char -fwrapv -std=c11 -c quickjs/libregexp.c -o quickjs/libregexp.o
:info:build /opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -funsigned-char -fwrapv -std=c11 -c quickjs/libunicode.c -o quickjs/libunicode.o
:info:build /opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -funsigned-char -fwrapv -std=c11 -c quickjs/quickjs.c -o quickjs/quickjs.o
:info:build /opt/local/bin/gcc-mp-13 -I"/opt/local/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"../inst/include/" -I/opt/local/include/LegacySupport -DSTRICT_R_HEADERS -D_GNU_SOURCE -DCONFIG_BIGNUM  -DCONFIG_VERSION=\"2024-01-13\" -I'/opt/local/Library/Frameworks/R.framework/Versions/4.4/Resources/library/Rcpp/include' -isystem/opt/local/include/LegacySupport -I/opt/local/include    -fPIC  -pipe -Os -arch ppc  -funsigned-char -fwrapv -std=c11 -c quickjs/quickjs-libc.c -o quickjs/quickjs-libc.o
:info:build ar -rs ../inst/lib//libquickjs.a quickjs/cutils.o quickjs/libbf.o quickjs/libregexp.o quickjs/libunicode.o quickjs/quickjs.o quickjs/quickjs-libc.o
:info:build ar: creating archive ../inst/lib//libquickjs.a
:info:build /opt/local/bin/g++-mp-13 -std=gnu++17 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/opt/local/Library/Frameworks/R.framework/Resources/lib -Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport -Wl,-rpath,/opt/local/lib/libgcc -arch ppc -o QuickJSR.so quickjsr_impl.o quickjsr.o init.o ../inst/lib//libquickjs.a -L/opt/local/lib -lMacportsLegacySupport -F/opt/local/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
:info:build installing to /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build/00LOCK-QuickJSR/00new/QuickJSR/libs
:info:build ** R
:info:build ** inst
:info:build ** tests
:info:build ** byte-compile and prepare package for lazy loading
:info:build ** help
:info:build *** installing help indices
:info:build ** building package indices
:info:build ** testing if installed package can be loaded from temporary location
:info:build Error: package or namespace load failed for ‘QuickJSR’ in dyn.load(file, DLLpath = DLLpath, ...):
:info:build  unable to load shared object '/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build/00LOCK-QuickJSR/00new/QuickJSR/libs/QuickJSR.so':
:info:build   dlopen(/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build/00LOCK-QuickJSR/00new/QuickJSR/libs/QuickJSR.so, 6): Symbol not found: ___atomic_fetch_add_8
:info:build   Referenced from: /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build/00LOCK-QuickJSR/00new/QuickJSR/libs/QuickJSR.so
:info:build   Expected in: dynamic lookup
:info:build Error: loading failed
:info:build Execution halted
:info:build ERROR: loading failed
:info:build * removing ‘/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build/QuickJSR’
:info:build Command failed:  cd "/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/QuickJSR" && /opt/local/bin/R CMD INSTALL . --library=/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_R_R-QuickJSR/R-QuickJSR/work/build --install-tests 
:info:build Exit code: 1
:error:build Failed to build R-QuickJSR: command execution failed
:debug:build Error code: CHILDSTATUS 11039 1