Fwd: cross compile OpenJDK-9+158 minimal variant failed when link libjvm.so

David Holmes david.holmes at oracle.com
Thu Mar 2 02:51:08 UTC 2017


I've moved this discussion over to hotspot-dev as this seems no longer a 
build issue but a C1 soft-float issue.

David

On 2/03/2017 12:35 PM, Zhu Yong wrote:
> If run with -Xint, it works.
>
> I have created simplified FP test by remove all non-related code from
> Whetstone test code.
> The test code is here:
> https://gist.github.com/yongzhy/d65c26d39fe5d549d1b406c7c84eacd4
>
> I am not sure if the test code can help or not. The behaviour is weird  :
> - If I print both itime and q, program will run OK
> - inside condition block if(q<1.0f), if I use exit code 2,3,4,5, problem
> appears, however, if I use exit code >=6, program run OK.
>
> I always get exit code 5, the line q = (double)itime is wrong?
>
>     public static double getTime()
>     {
>             double q;
>             long itime;
>             itime = System.currentTimeMillis();
>             if(itime<1000000) {
>                 System.exit(1);
>             }
>             //System.out.printf("time long value %d\n", itime);
>             q = (double) itime;
>             if(q < 1.0f) {
>                 System.exit(5);  // I always get exit code 5
>             }
>             //System.out.printf("time float value %f\n", q);
>             return q / 1000.0;
>     }
>
>
>
> On Wed, Mar 1, 2017 at 5:31 PM, David Holmes <david.holmes at oracle.com
> <mailto:david.holmes at oracle.com>> wrote:
>
>     On 1/03/2017 6:45 PM, Zhu Yong wrote:
>
>         OK, for the Whetstone Benchmark, I added debug printing and
>         found it's
>         due to function getTime(), it only get good value on 1st call, all
>         following calls get 0s.
>         Debug printing of itime value is correct. So reason should be
>         the return
>         division line. Could it because toolchain's floating point
>         operation???
>         But why server VM Ok?
>
>
>     Server and client implement FP logic differently, and particularly
>     as this is soft-fp, they may well not be in sync. Does -Xint work?
>
>     Can you isolate to a simple FP test?
>
>     David
>
>             public static double getTime()
>             {
>                     double q;
>                     long itime;
>                     itime = System.currentTimeMillis();
>                     q = (double) itime;
>                     return q / 1000.0;
>             }
>
>         On Wed, Mar 1, 2017 at 3:14 PM, David Holmes
>         <david.holmes at oracle.com <mailto:david.holmes at oracle.com>
>         <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>> wrote:
>
>             On 1/03/2017 4:26 PM, Zhu Yong wrote:
>
>                 We use armv7-marvell-linux-gnueabi-softfp toolchain
>
>                 gcc version 4.6.4 (Marvell GCC release 20150204-c4af733b 64K
>                 MAXPAGESIZE
>                 ALIGN CVE-2015-0235)
>
>                 Is this toolchain too old? I am asking because I saw
>         other strange
>                 issues as well:
>
>
>             We last used gcc 4.7.2. I can't really say if 4.6.4 is "too
>         old".
>
>                 I have successfully build server, client and minimal VM,
>         when I run
>                 Dhrystone benchmark file (the same jar file from
>                 http://www.okayan.jp/DhrystoneApplet/
>         <http://www.okayan.jp/DhrystoneApplet/>
>                 <http://www.okayan.jp/DhrystoneApplet/
>         <http://www.okayan.jp/DhrystoneApplet/>>), the performance from
>                 server VM
>                 is much better than client and minimal VM.
>                 (minimal: 1629852, client: 1615508, server: 2338871 )
>
>
>             That's expected. The server VM is high performance.
>
>                 And when run Whetstone Benchmark
>                 from
>         http://www.roylongbottom.org.uk/online/whetjava2.html
>         <http://www.roylongbottom.org.uk/online/whetjava2.html>
>                 <http://www.roylongbottom.org.uk/online/whetjava2.html
>         <http://www.roylongbottom.org.uk/online/whetjava2.html>>, server VM
>                 finished with good result, client and minimal VM not
>         able to finish
>                 (program stuck there forever after print 1st line of
>         output).
>
>
>             That needs investigating. You need to try and generate a
>         stackdump
>             to see where things are stuck.
>
>             David
>
>
>                 On Wed, Mar 1, 2017 at 1:56 PM, David Holmes
>                 <david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com> <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>
>                 <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>
>                 <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>>> wrote:
>
>                     On 1/03/2017 3:39 PM, Zhu Yong wrote:
>
>                         Thank you for the information, I managed to make
>         minimal
>                 build
>                         pass now.
>
>                         Initially I though JVM_EXCLUDE_FILES need to add
>                 additional 3
>                         generated
>                         files (they appeared
>                         in _BUILD_LIBJVM_objectfilenames.txt) :
>                         bytecodeInterpreterWithChecks.cpp jvmtiEnter.cpp
>                         jvmtiEnterTrace.cpp
>                         But build still fail with same error message.
>
>                         Finally I figured out it's due to those 8 doit()
>         functions
>                         implementation in jvmtiEnvBase.hpp file. After
>         move all
>                 those 8
>                         doit()
>                         implementations to jvmtiEnvBase.cpp, build of
>         minimal VM
>                 passed
>                         without
>                         any issue.
>
>
>                     That seems to be a compiler issue. jvmtiEnvBase.hpp is
>                     unconditionally included in a couple of places
>         because we
>                 have to
>                     have enough of the JVMTI code to say JVMTI is not
>         available.
>                 Those
>                     doit() implementations, though arguably could be
>         conditional on
>                     INCLUDE_JVMTI, are not referenced by any called code
>         and so
>                 should
>                     not linked in. But in your case it seems they are.
>
>                     What toolchain are you using?
>
>                     David
>                     -----
>
>                         Changes appended
>                         =============
>
>                         ---
>                          .../src/share/vm/prims/jvmtiEnvBase.cpp
>             | 74
>                         ++++++++++++++++++++++
>                          .../src/share/vm/prims/jvmtiEnvBase.hpp
>             | 68
>                         +++-----------------
>                          2 files changed, 82 insertions(+), 60 deletions(-)
>                          mode change 100644 => 100755
>
>         hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.cpp
>                          mode change 100644 => 100755
>
>         hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.hpp
>
>                         diff --git
>
>         a/hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.cpp
>
>         b/hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.cpp
>                         old mode 100644
>                         new mode 100755
>                         index dd241a0..e5832ba
>                         ---
>                 a/hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.cpp
>                         +++
>                 b/hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.cpp
>                         @@ -1283,6 +1283,80 @@
>
>         VM_GetMultipleStackTraces::allocate_and_fill_stacks(jint
>                         thread_count) {
>                                   "the last copied frame info must be
>         the last
>                 record");
>                          }
>
>                         +void
>                         +VM_UpdateForPopTopFrame::doit() {
>                         +  JavaThread* jt = _state->get_thread();
>                         +  if (Threads::includes(jt) && !jt->is_exiting() &&
>                         jt->threadObj() !=
>                         NULL) {
>                         +    _state->update_for_pop_top_frame();
>                         +  } else {
>                         +    _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         +  }
>                         +}
>                         +
>                         +void
>                         +VM_SetFramePop::doit() {
>                         +  JavaThread* jt = _state->get_thread();
>                         +  if (Threads::includes(jt) && !jt->is_exiting() &&
>                         jt->threadObj() !=
>                         NULL) {
>                         +    int frame_number = _state->count_frames() -
>         _depth;
>                         +
>
>
>          _state->env_thread_state((JvmtiEnvBase*)_env)->set_frame_pop(frame_number);
>                         +  } else {
>                         +    _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         +  }
>                         +}
>                         +
>                         +void
>                         +VM_GetOwnedMonitorInfo::doit() {
>                         +  _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         +  if (Threads::includes(_java_thread) &&
>                         !_java_thread->is_exiting()
>                         +                                      &&
>                         _java_thread->threadObj() !=
>                         NULL) {
>                         +    _result = ((JvmtiEnvBase
>                         *)_env)->get_owned_monitors(_calling_thread,
>         _java_thread,
>                         +
>                          _owned_monitors_list);
>                         +  }
>                         +}
>                         +
>                         +void
>                         +VM_GetObjectMonitorUsage::doit() {
>                         +  _result = ((JvmtiEnvBase*)
>                         _env)->get_object_monitor_usage(_calling_thread,
>         _object,
>                         _info_ptr);
>                         +}
>                         +
>                         +void
>                         +VM_GetCurrentContendedMonitor::doit() {
>                         +  _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         +  if (Threads::includes(_java_thread) &&
>                         !_java_thread->is_exiting() &&
>                         +      _java_thread->threadObj() != NULL) {
>                         +    _result = ((JvmtiEnvBase
>
>
>         *)_env)->get_current_contended_monitor(_calling_thread,_java_thread,_owned_monitor_ptr);
>                         +  }
>                         +}
>                         +
>                         +void
>                         +VM_GetStackTrace::doit() {
>                         +  _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         +  if (Threads::includes(_java_thread) &&
>                         !_java_thread->is_exiting()
>                         +                                      &&
>                         _java_thread->threadObj() !=
>                         NULL) {
>                         +    _result = ((JvmtiEnvBase
>                 *)_env)->get_stack_trace(_java_thread,
>                         +
>                 _start_depth,
>                         _max_count,
>                         +
>                         _frame_buffer,
>                         _count_ptr);
>                         +  }
>                         +}
>                         +
>                         +void
>                         +VM_GetFrameCount::doit() {
>                         +  _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         +  JavaThread* jt = _state->get_thread();
>                         +  if (Threads::includes(jt) && !jt->is_exiting() &&
>                         jt->threadObj() !=
>                         NULL) {
>                         +    _result =
>                 ((JvmtiEnvBase*)_env)->get_frame_count(_state,
>                         _count_ptr);
>                         +  }
>                         +}
>                         +
>                         +void
>                         +VM_GetFrameLocation::doit() {
>                         +  _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         +  if (Threads::includes(_java_thread) &&
>                         !_java_thread->is_exiting() &&
>                         +      _java_thread->threadObj() != NULL) {
>                         +    _result =
>
>         ((JvmtiEnvBase*)_env)->get_frame_location(_java_thread,
>                         _depth,
>                         +
>                         _method_ptr,
>                         _location_ptr);
>                         +  }
>                         +}
>
>                          void
>                          VM_GetThreadListStackTraces::doit() {
>                         diff --git
>
>         a/hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.hpp
>
>         b/hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.hpp
>                         old mode 100644
>                         new mode 100755
>                         index 04e6869..00b9890
>                         ---
>                 a/hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.hpp
>                         +++
>                 b/hotspot-9211c2e89c1c/src/share/vm/prims/jvmtiEnvBase.hpp
>                         @@ -359,14 +359,7 @@ public:
>                            }
>                            VMOp_Type type() const { return
>                 VMOp_UpdateForPopTopFrame; }
>                            jvmtiError result() { return _result; }
>                         -  void doit() {
>                         -    JavaThread* jt = _state->get_thread();
>                         -    if (Threads::includes(jt) &&
>         !jt->is_exiting() &&
>                         jt->threadObj()
>                         != NULL) {
>                         -      _state->update_for_pop_top_frame();
>                         -    } else {
>                         -      _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         -    }
>                         -  }
>                         +  void doit();
>                          };
>
>                          // VM operation to set frame pop.
>                         @@ -389,15 +382,7 @@ public:
>                            bool allow_nested_vm_operations() const {
>         return true; }
>                            VMOp_Type type() const { return
>         VMOp_SetFramePop; }
>                            jvmtiError result() { return _result; }
>                         -  void doit() {
>                         -    JavaThread* jt = _state->get_thread();
>                         -    if (Threads::includes(jt) &&
>         !jt->is_exiting() &&
>                         jt->threadObj()
>                         != NULL) {
>                         -      int frame_number = _state->count_frames()
>         - _depth;
>                         -
>
>
>          _state->env_thread_state((JvmtiEnvBase*)_env)->set_frame_pop(frame_number);
>                         -    } else {
>                         -      _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         -    }
>                         -  }
>                         +  void doit();
>                          };
>
>
>                         @@ -421,14 +406,7 @@ public:
>                              _result = JVMTI_ERROR_NONE;
>                            }
>                            VMOp_Type type() const { return
>                 VMOp_GetOwnedMonitorInfo; }
>                         -  void doit() {
>                         -    _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         -    if (Threads::includes(_java_thread) &&
>                         !_java_thread->is_exiting()
>                         -                                        &&
>                         _java_thread->threadObj() !=
>                         NULL) {
>                         -      _result = ((JvmtiEnvBase
>                         *)_env)->get_owned_monitors(_calling_thread,
>         _java_thread,
>                         -
>                          _owned_monitors_list);
>                         -    }
>                         -  }
>                         +  void doit();
>                            jvmtiError result() { return _result; }
>                          };
>
>                         @@ -451,10 +429,7 @@ public:
>                            }
>                            VMOp_Type type() const { return
>                 VMOp_GetObjectMonitorUsage; }
>                            jvmtiError result() { return _result; }
>                         -  void doit() {
>                         -    _result = ((JvmtiEnvBase*)
>                         _env)->get_object_monitor_usage(_calling_thread,
>         _object,
>                         _info_ptr);
>                         -  }
>                         -
>                         +  void doit();
>                          };
>
>                          // VM operation to get current contended monitor.
>                         @@ -475,13 +450,7 @@ public:
>                            }
>                            VMOp_Type type() const { return
>                         VMOp_GetCurrentContendedMonitor; }
>                            jvmtiError result() { return _result; }
>                         -  void doit() {
>                         -    _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         -    if (Threads::includes(_java_thread) &&
>                         !_java_thread->is_exiting() &&
>                         -        _java_thread->threadObj() != NULL) {
>                         -      _result = ((JvmtiEnvBase
>
>
>         *)_env)->get_current_contended_monitor(_calling_thread,_java_thread,_owned_monitor_ptr);
>                         -    }
>                         -  }
>                         +  void doit();
>                          };
>
>                          // VM operation to get stack trace at safepoint.
>                         @@ -508,15 +477,7 @@ public:
>                            }
>                            jvmtiError result() { return _result; }
>                            VMOp_Type type() const { return
>         VMOp_GetStackTrace; }
>                         -  void doit() {
>                         -    _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         -    if (Threads::includes(_java_thread) &&
>                         !_java_thread->is_exiting()
>                         -                                        &&
>                         _java_thread->threadObj() !=
>                         NULL) {
>                         -      _result = ((JvmtiEnvBase
>                         *)_env)->get_stack_trace(_java_thread,
>                         -
>                         _start_depth,
>                         _max_count,
>                         -
>                         _frame_buffer,
>                         _count_ptr);
>                         -    }
>                         -  }
>                         +  void doit();
>                          };
>
>                          // forward declaration
>                         @@ -606,13 +567,7 @@ public:
>                            }
>                            VMOp_Type type() const { return
>         VMOp_GetFrameCount; }
>                            jvmtiError result()    { return _result; }
>                         -  void doit() {
>                         -    _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         -    JavaThread* jt = _state->get_thread();
>                         -    if (Threads::includes(jt) &&
>         !jt->is_exiting() &&
>                         jt->threadObj()
>                         != NULL) {
>                         -      _result =
>                 ((JvmtiEnvBase*)_env)->get_frame_count(_state,
>                         _count_ptr);
>                         -    }
>                         -  }
>                         +  void doit();
>                          };
>
>                          // VM operation to frame location at safepoint.
>                         @@ -636,14 +591,7 @@ public:
>                            }
>                            VMOp_Type type() const { return
>         VMOp_GetFrameLocation; }
>                            jvmtiError result()    { return _result; }
>                         -  void doit() {
>                         -    _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
>                         -    if (Threads::includes(_java_thread) &&
>                         !_java_thread->is_exiting() &&
>                         -        _java_thread->threadObj() != NULL) {
>                         -      _result =
>
>         ((JvmtiEnvBase*)_env)->get_frame_location(_java_thread,
>                         _depth,
>                         -
>                         _method_ptr,
>                         _location_ptr);
>                         -    }
>                         -  }
>                         +  void doit();
>                          };
>
>
>                         --
>                         2.1.4
>
>
>                         On Tue, Feb 28, 2017 at 6:11 PM, David Holmes
>                         <david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>
>                 <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>
>         <mailto:david.holmes at oracle.com <mailto:david.holmes at oracle.com>
>                 <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>>
>                         <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>
>                 <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>
>
>                         <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>
>                 <mailto:david.holmes at oracle.com
>         <mailto:david.holmes at oracle.com>>>>> wrote:
>
>                             On 28/02/2017 7:35 PM, David Holmes wrote:
>
>                                 On 28/02/2017 6:51 PM, Zhu Yong wrote:
>
>                                     Dear All,
>
>                                     I am testing cross compile
>         OpenJDK-9+158 for our
>                         embedded
>                                     system using
>                                     buildroot, I can build server and client
>                 variants
>                                     successfully, but the
>                                     output compact1 profile file size is too
>                 big, then I
>                         tried
>                                     to build
>                                     minimal
>                                     variant, failed when linking libjvm.so.
>
>                                     I checked
>
>
>
>         build/linux-arm-normal-minimal-release/hotspot/variant-minimal/
>
>         libjvm/objs/_BUILD_LIBJVM_objectfilenames.txt,
>                         jvmtiEnvBase.o
>                                     and jvmtiEnvThreadState.o are not
>         listed in
>                 the file
>                         (which
>                                     is required
>                                     from the error message below).
>
>
>                                 Right - JVM TI is not part of the
>         Minimal VM. At the
>                         moment it looks
>                                 like some service has either been
>         enabled when
>                 it should not
>                                 have been,
>                                 or has not been correctly if'def in the
>         source.
>
>
>                             As far as I can see your error messages are
>                 complaining about
>                             missing functions that are called from the same
>                 sources as the
>                             functions that are missing! ie.
>
>                             undefined reference to
>
>                 `JvmtiEnvBase::get_current_contended_monitor(JavaThread*,
>                         JavaThread*,
>                             _jobject**)'
>                             /tmp/cc27HS5M.ltrans0.ltrans.o: In function
>                             `VM_GetOwnedMonitorInfo::doit()
>
>                             but VM_GetOwnedMonitorInfo is defined in
>                 jvmtiEnv.cpp which
>                         should
>                             be included or excluded the same as
>         jvmtiEnBase.cpp.
>                 Here's the
>                             logic in the makefile that controls this:
>
>                             ifneq ($(call check-jvm-feature, jvmti), true)
>                               JVM_CFLAGS_FEATURES += -DINCLUDE_JVMTI=0
>                               JVM_EXCLUDE_FILES += jvmtiGetLoadedClasses.cpp
>                             jvmtiThreadState.cpp jvmtiExtensions.cpp \
>                                   jvmtiImpl.cpp jvmtiManageCapabilities.cpp
>                         jvmtiRawMonitor.cpp
>                             jvmtiUtil.cpp jvmtiTrace.cpp \
>                                   jvmtiCodeBlobEvents.cpp jvmtiEnv.cpp
>                         jvmtiRedefineClasses.cpp
>                             jvmtiEnvBase.cpp jvmtiEnvThreadState.cpp \
>                                   jvmtiTagMap.cpp jvmtiEventController.cpp
>                 evmCompat.cpp
>                             jvmtiEnter.xsl jvmtiExport.cpp \
>                                   jvmtiClassFileReconstituter.cpp
>                             endif
>
>                             Can you run with LOG=trace so that each
>         compiled file is
>                         listed in
>                             the build log, then see if there are any jvmti*
>                 files listed
>                         there.
>
>                             Thanks,
>                             David
>
>
>
>
>                                 Can you provide the lines from your spec.gmk
>                 that define the
>                                 JVM_FEATURES_* variables please.
>
>                                 Thanks,
>                                 David
>                                 ------
>
>
>                                     === Output from failing command(s)
>         repeated
>                 here ===
>                                     * For target
>
>                 hotspot_variant-minimal_libjvm_objs_BUILD_LIBJVM_link:
>                                     /tmp/cc27HS5M.ltrans0.ltrans.o: In
>         function
>                                     `VM_GetStackTrace::doit()
>                                     [clone .local.640]':
>                                     cc27HS5M.ltrans0.o:(.text+0xce5e):
>         undefined
>                         reference to
>
>         `JvmtiEnvBase::get_stack_trace(JavaThread*,
>                 int, int,
>                                     _jvmtiFrameInfo*,
>                                     int*)'
>                                     /tmp/cc27HS5M.ltrans0.ltrans.o: In
>         function
>                                     `VM_GetCurrentContendedMonitor::doit()
>                                     [clone .local.639]':
>                                     cc27HS5M.ltrans0.o:(.text+0xcec2):
>         undefined
>                         reference to
>
>
>         `JvmtiEnvBase::get_current_contended_monitor(JavaThread*,
>                                     JavaThread*,
>                                     _jobject**)'
>                                     /tmp/cc27HS5M.ltrans0.ltrans.o: In
>         function
>                                     `VM_GetOwnedMonitorInfo::doit()
>                                     [clone .local.638]':
>                                     cc27HS5M.ltrans0.o:(.text+0xcf26):
>         undefined
>                         reference to
>
>         `JvmtiEnvBase::get_owned_monitors(JavaThread*,
>                         JavaThread*,
>                                     GrowableArray<_
>                                     jvmtiMonitorStackDepthInfo*>*)'
>                                     /tmp/cc27HS5M.ltrans0.ltrans.o: In
>         function
>                                     `VM_GetFrameCount::doit()
>                                     [clone .local.637]':
>                                     cc27HS5M.ltrans0.o:(.text+0xcf8a):
>         undefined
>                         reference to
>
>                 `JvmtiEnvBase::get_frame_count(JvmtiThreadState*, int*)'
>                                     /tmp/cc27HS5M.ltrans0.ltrans.o: In
>         function
>                                     `VM_SetFramePop::doit()
>                                     [clone
>                                     .local.636]':
>                                     cc27HS5M.ltrans0.o:(.text+0xcfea):
>         undefined
>                         reference to
>                                     `JvmtiThreadState::count_frames()'
>                                     cc27HS5M.ltrans0.o:(.text+0xd030):
>         undefined
>                         reference to
>
>         `JvmtiEnvThreadState::set_frame_pop(int)'
>                                     /tmp/cc27HS5M.ltrans0.ltrans.o: In
>         function
>                                     `VM_GetFrameLocation::doit()
>                                     [clone .local.641]':
>                                        ... (rest of output omitted)
>
>
>                                     My configuration:
>
>                                     --with-jdk-variant=normal \
>                                     --with-jvm-variants=minimal \
>                                     --with-debug-level=release \
>                                     --disable-warnings-as-errors \
>                                     --disable-hotspot-gtest \
>                                     --with-abi-profile=arm-vfp-sflt \
>                                     --openjdk-target=$(GNU_TARGET_NAME) \
>                                     --with-sys-root=$(STAGING_DIR) \
>                                     --with-tools-dir=$(HOST_DIR) \
>
>                 --with-freetype-include=$(STAGING_DIR)/usr/include \
>
>         --with-freetype-lib=$(STAGING_DIR)/usr/lib \
>                                     --with-freetype=$(STAGING_DIR)/usr/ \
>
>         --with-alsa-include=$(STAGING_DIR)/usr/include \
>                                     --with-alsa-lib=$(STAGING_DIR)/usr/lib \
>                                     --with-alsa=$(STAGING_DIR)/usr/ \
>                                     --with-cups=$(STAGING_DIR)/usr/ \
>                                     --with-x=$(STAGING_DIR)/usr/include \
>
>         --with-extra-ldflags=--sysroot=$(STAGING_DIR) \
>                                     --enable-headless-only \
>                                     --disable-freetype-bundling \
>                                     --enable-unlimited-crypto \
>                                     --with-boot-jdk=/opt/java/jdk1.8.0_102
>
>
>
>
>



More information about the build-dev mailing list