Cannot link against memset_with_concurrent_readers_sparc.cpp
John Paul Adrian Glaubitz
glaubitz at physik.fu-berlin.de
Wed Jun 7 00:10:38 UTC 2017
Hi!
I'm still working on fixing OpenJDK-9 on Linux/sparc64 and I'm currently
running into something which should be a trivial Makefile issue which
is a linker problem (see for the paste below, full log in [1]).
Now, the problem obviously happens on SPARC only because it has its own
custom implementation of the memset_with_concurrent_readers() function
in ./src/cpu/sparc/vm/memset_with_concurrent_readers_sparc.cpp, the
other platforms use ./src/share/vm/gc/shared/memset_with_concurrent_readers.hpp.
>From the full build log, it's obvious that memset_with_concurrent_readers_sparc.cpp
is being compiled earlier, but it's apparently missing on the linker command
line later.
I have been trying to understand the hand-written Makefiles but I can't
seem to find the place which I need to patch.
Does anyone who is more familiar with the build system have an idea
where to look?
Thanks,
Adrian
> [1] http://people.debian.org/~glaubitz/openjdk-9_9~b170-2_sparc64.build.gz
=== Output from failing command(s) repeated here ===
/usr/bin/printf "* For target hotspot_variant-zero_libjvm_gtest_objs_BUILD_GTEST_LIBJVM_link:\n"
* For target hotspot_variant-zero_libjvm_gtest_objs_BUILD_GTEST_LIBJVM_link:
(/bin/grep -v -e "^Note: including file:" <
/<<PKGBUILDDIR>>/build-zero/make-support/failure-logs/hotspot_variant-zero_libjvm_gtest_objs_BUILD_GTEST_LIBJVM_link.log || true) | /usr/bin/head -n 12
/<<PKGBUILDDIR>>/build-zero/hotspot/variant-zero/libjvm/gtest/objs/test_memset_with_concurrent_readers.o: In function
`gc_memset_with_concurrent_readers_test_Test::TestBody()':
./src/hotspot/make/./src/hotspot/test/native/gc/shared/test_memset_with_concurrent_readers.cpp:66: undefined reference to `memset_with_concurrent_readers(void*,
int, unsigned long)'
/<<PKGBUILDDIR>>/build-zero/hotspot/variant-zero/libjvm/objs/blockOffsetTable.o: In function `BlockOffsetSharedArray::fill_range(unsigned long, unsigned long,
unsigned char)':
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
/<<PKGBUILDDIR>>/build-zero/hotspot/variant-zero/libjvm/objs/blockOffsetTable.o:./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159:
more undefined references to `memset_with_concurrent_readers(void*, int, unsigned long)' follow
collect2: error: ld returned 1 exit status
if test `/usr/bin/wc -l < /<<PKGBUILDDIR>>/build-zero/make-support/failure-logs/hotspot_variant-zero_libjvm_gtest_objs_BUILD_GTEST_LIBJVM_link.log` -gt 12; then
/bin/echo " ... (rest of output omitted)" ; fi
/usr/bin/printf "* For target hotspot_variant-zero_libjvm_objs_BUILD_LIBJVM_link:\n"
* For target hotspot_variant-zero_libjvm_objs_BUILD_LIBJVM_link:
(/bin/grep -v -e "^Note: including file:" < /<<PKGBUILDDIR>>/build-zero/make-support/failure-logs/hotspot_variant-zero_libjvm_objs_BUILD_LIBJVM_link.log ||
true) | /usr/bin/head -n 12
/<<PKGBUILDDIR>>/build-zero/hotspot/variant-zero/libjvm/objs/blockOffsetTable.o: In function `BlockOffsetSharedArray::fill_range(unsigned long, unsigned long,
unsigned char)':
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159: undefined reference to `memset_with_concurrent_readers(void*, int, unsigned long)'
/<<PKGBUILDDIR>>/build-zero/hotspot/variant-zero/libjvm/objs/blockOffsetTable.o:./src/hotspot/make/./src/hotspot/src/share/vm/gc/shared/blockOffsetTable.hpp:159:
more undefined references to `memset_with_concurrent_readers(void*, int, unsigned long)' follow
collect2: error: ld returned 1 exit status
if test `/usr/bin/wc -l < /<<PKGBUILDDIR>>/build-zero/make-support/failure-logs/hotspot_variant-zero_libjvm_objs_BUILD_LIBJVM_link.log` -gt 12; then /bin/echo "
... (rest of output omitted)" ; fi
/usr/bin/printf "\n* All command lines available in /<<PKGBUILDDIR>>/build-zero/make-support/failure-logs.\n"
* All command lines available in /<<PKGBUILDDIR>>/build-zero/make-support/failure-logs.
/usr/bin/printf "=== End of repeated output ===\n"
=== End of repeated output ===
if /bin/grep -q "recipe for target .* failed" /<<PKGBUILDDIR>>/build-zero/build.log 2> /dev/null; then /usr/bin/printf "\n=== Make failed targets repeated here
===\n" ; /bin/grep "recipe for target .* failed" /<<PKGBUILDDIR>>/build-zero/build.log ; /usr/bin/printf "=== End of repeated output ===\n" ; /usr/bin/printf
"\nHint: Try searching the build log for the name of the first failed target.\n" ; else /usr/bin/printf "\nNo indication of failed target found.\n" ;
/usr/bin/printf "Hint: Try searching the build log for '] Error'.\n" ; fi
=== Make failed targets repeated here ===
lib/CompileJvm.gmk:212: recipe for target '/<<PKGBUILDDIR>>/build-zero/support/modules_libs/java.base/server/libjvm.so' failed
lib/CompileGtest.gmk:64: recipe for target '/<<PKGBUILDDIR>>/build-zero/hotspot/variant-zero/libjvm/gtest/libjvm.so' failed
make/Main.gmk:263: recipe for target 'hotspot-zero-libs' failed
=== End of repeated output ===
--
.''`. John Paul Adrian Glaubitz
: :' : Debian Developer - glaubitz at debian.org
`. `' Freie Universitaet Berlin - glaubitz at physik.fu-berlin.de
`- GPG: 62FF 8A75 84E0 2956 9546 0006 7426 3B37 F5B5 F913
More information about the hotspot-dev
mailing list