Ivan Popov wrote:
> Tim,
>
> I see you have modified jdktools build a lot. Now it uses classlibs's
> make scripts to build native code, rather then jdktools's ones.
It uses the HDK's -- if you have that pointing at the classlib/deploy
directory then they are the same thing.
There is more work to do. The jdktools project still has a copy of the
properties.xml, which it should share from the HDK (but we don't put it
in there right now) so I just fixed it up a bit already.
> Good
> consequence is that jdktools build now supports freebsd and apple
> platforms. But jdktools build now depends on the build settings in
> classlib's build. I think it's OK in general, but this exposed a few
> problems.
They should be build settings for the entire build once we get them
shared properly.
> After the latest changes, there is a problem with using JPDA binaries
> built with old gcc 3.3.3 on linux/x86 (SLES9), which are not
> reproduced for GCC 4.0. JPDA is written in C++ and using C++
> exceptions leads to VM crash. Adding -fpic solves this problem for GCC
> 3.3.3.
>
> I'm not sure if any classlib modules are written in C++. But using
> -fpic on linux/x86 is safe and can be added to classlib's make scripts
> to resolve problems with jdktools modules.
Can you try this patch in working_jdktools/modules/jpda/src/ and let me
know if it fixes the problem:
Index: main/native/jdwp/unix/agent/makefile
===================================================================
--- main/native/jdwp/unix/agent/makefile (revision 534796)
+++ main/native/jdwp/unix/agent/makefile (working copy)
@@ -22,6 +22,8 @@
COMMON=../../common/
CMNAGENT=$(COMMON)agent/
+CFLAGS += -fpic
+
INCLUDES += -I$(CMNAGENT)commands -I$(CMNAGENT)core \
-I$(COMMON)generic -Icore
Index: main/native/jdwp/unix/transport/makefile
===================================================================
--- main/native/jdwp/unix/transport/makefile (revision 534796)
+++ main/native/jdwp/unix/transport/makefile (working copy)
@@ -26,6 +26,8 @@
COMMON=../../common/
CMNTRANS=$(COMMON)transport/
+CFLAGS += -fpic
+
INCLUDES += -I$(CMNTRANS)common -I$(CMNTRANS)dt_socket \
-I$(COMMON)generic -Idt_socket
> The other minor problem is that classlib's make scripts don't define
> NDEBUG macro for release mode, so all debug/trace code is included
> into release build. This also should be fixed.
Sorry, which macro is that?
> If nobody objects to such modification of classlib's builds, I'll
> submit JIRA and provide patch.
They should just be done locally as they are elsewhere.
Regards,
Tim