Trouble finding the definition for class BarrierSet

Erik Österlund erik.osterlund at oracle.com
Mon Jun 4 19:47:36 UTC 2018


Hi Adrian,

Can't you just #include "gc/shared/barrierSet.hpp" in library_call.cpp? 
It is forward declared in oop.hpp, c1_LIRAssembler.hpp and  
collectedHeap.hpp. Perhaps you got one of those accidentally.

Thanks,
/Erik

On 2018-06-04 17:45, John Paul Adrian Glaubitz wrote:
> Hi!
>
> I am currently looking at JDK-8203787 again, the problem still exists (see below).
>
> What I don't understand: Why is class BarrierSet apparently not declared in this
> case. I tried understanding the logic through which "barrierSet.hpp" ends up
> being included in library_call.cpp but I cannot find anything, the level
> of nesting is just too deep to be able to follow all transitive #include
> directions.
>
> Does anyone have an idea how to be able to track this down? Does Solaris do
> anything special with regards to "class BarrierSet" or is there a "os_cpu"-
> specific implementation/include etc?
>
> There must be a trivial bug on linux-sparc which prevents "class BarrierSet"
> from being defined here but I can't seem to see the problem.
>
> Adrian
>
> === Output from failing command(s) repeated here ===
> /usr/bin/printf "* For target hotspot_variant-server_libjvm_objs_library_call.o:\n"
> * For target hotspot_variant-server_libjvm_objs_library_call.o:
> (/bin/grep -v -e "^Note: including file:" <  /srv/openjdk/jdk/build/linux-sparcv9-normal-server-release/make-support/failure-logs/hotspot_variant-server_libjvm_objs_library_call.o.log || true) | /usr/bin/head -n 12
> /srv/openjdk/jdk/src/hotspot/share/opto/library_call.cpp: In member function ‘bool LibraryCallKit::inline_native_clone(bool)’:
> /srv/openjdk/jdk/src/hotspot/share/opto/library_call.cpp:4272:38: error: incomplete type ‘BarrierSet’ used in nested name specifier
>         BarrierSetC2* bs = BarrierSet::barrier_set()->barrier_set_c2();
>                                        ^~~~~~~~~~~
> if test `/usr/bin/wc -l < /srv/openjdk/jdk/build/linux-sparcv9-normal-server-release/make-support/failure-logs/hotspot_variant-server_libjvm_objs_library_call.o.log` -gt 12; then /bin/echo "   ... (rest of output omitted)" ; fi
> /usr/bin/printf "* For target jdk_modules_java.desktop__the.java.desktop_batch:\n"
> * For target jdk_modules_java.desktop__the.java.desktop_batch:
> (/bin/grep -v -e "^Note: including file:" <  /srv/openjdk/jdk/build/linux-sparcv9-normal-server-release/make-support/failure-logs/jdk_modules_java.desktop__the.java.desktop_batch.log || true) | /usr/bin/head -n 12
> if test `/usr/bin/wc -l < /srv/openjdk/jdk/build/linux-sparcv9-normal-server-release/make-support/failure-logs/jdk_modules_java.desktop__the.java.desktop_batch.log` -gt 12; then /bin/echo "   ... (rest of output omitted)" ; fi
> /usr/bin/printf "\n* All command lines available in /srv/openjdk/jdk/build/linux-sparcv9-normal-server-release/make-support/failure-logs.\n"
>
> * All command lines available in /srv/openjdk/jdk/build/linux-sparcv9-normal-server-release/make-support/failure-logs.
> /usr/bin/printf "=== End of repeated output ===\n"
> === End of repeated output ===
>



More information about the hotspot-dev mailing list