[PATCH, take 2] Build java as two separate DLLs on windows.
Kai Tietz
ktietz70@googlemail.com
Mon Aug 31 22:32:00 GMT 2009
2009/8/31 Dave Korn <dave.korn.cygwin@googlemail.com>:
>
> Hi all,
>
> Here's the final version of my libjava-as-dlls patch. Nobody had anything
> much to say about the first draft so I take it there were no obvious massive
> flaws; this is basically the same patch, tweaked to add -lgcj-noncore to the
> specs when using -lgcj_bc as well as when using ordinary -lgcj, and adding
> dependencies on libgcj-noncore.la to the tool executables everywhere they link
> against libgcj.la, so as to guarantee both libraries are available at the time
> those modified specs get used, preventing the parallel build from breaking.
>
> gcc/ChangeLog:
>
> * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Enable.
> * config/i386/cygwin.h (LIBGCJ_SONAME): Define.
> * config/i386/mingw32.h (LIBGCJ_SONAME): Likewise.
>
> libjava/ChangeLog:
>
> * configure.host (enable_libgcj_sublibs_default): New variable,
> set for Cygwin and MinGW.
> * configure.ac (--enable-libgcj-sublibs): New command-line switch.
> (BUILD_SUBLIBS): New AM_CONDITIONAL relating to it.
> (libgcj_spec_lgcj_override): New variable, define if building sublibs.
> (libgcj_spec_lgcj_bc_override): Likewise for when USE_LIBGCJ_BC.
> (LIBGCJ_SPEC_LGCJ): New variable to abstract "-lgcj" from specs.
> (LIBGCJ_SPEC_LGCJ_BC): Likewise for when USE_LIBGCJ_BC.
> (LIBGCJ_SPEC): Use them.
> * configure: Regenerate.
> * Makefile.am (LOWER_PACKAGE_FILES_LO): New variable.
> (ALL_PACKAGE_SOURCE_FILES_LO): Likewise.
> (NONCORE_PACKAGE_SOURCE_FILES_LO): Likewise.
> (CORE_PACKAGE_SOURCE_FILES_LO): Likewise.
> (toolexeclib_LTLIBRARIES): Add libgcj-noncore.la if building sublibs.
> (libgcj_noncore_la_LIBADD_SUBOBJECTS): New variable.
> (libgcj_la_LIBADD_SUBOBJECTS): Likewise.
> (libgcj_la_LDFLAGS_NOUNDEF): Likewise.
> (libgij_la_LDFLAGS): Add DLL-related options.
> (libgcj_la_LDFLAGS): Use libgcj_la_LDFLAGS_NOUNDEF and
> libgcj_la_LIBADD_SUBOBJECTS.
> (libgcj_la_DEPENDENCIES): Adjust to match.
> (libgcj_noncore_la_SOURCES, libgcj_noncore_la_LDFLAGS,
> libgcj_noncore_la_LIBADD, libgcj_noncore_la_DEPENDENCIES,
> libgcj_noncore_la_LINK): New automake variables for sublibrary.
> (libgcj_tools_la_LDFLAGS): Add DLL-related flags.
> (libgcj_tools_la_LIBADD): New variable.
> (libjvm_la_LDFLAGS): Add DLL-related flags.
> (lib_gnu_awt_xlib_la_LDFLAGS): Likewise.
> (libgcj_bc_la_LDFLAGS): Likewise.
> (libgij_la_DEPENDENCIES): Add dependency on libgcj-noncore.la when
> building sublibs.
> (libgcj_tools_la_DEPENDENCIES, libjvm_la_DEPENDENCIES,
> lib_gnu_awt_xlib_la_DEPENDENCIES, jv_convert_DEPENDENCIES,
> gcj_dbtool_DEPENDENCIES, gc_analyze_DEPENDENCIES, ecjx_DEPENDENCIES):
> Likewise.
> * Makefile.in: Regenerate.
> * sysdep/i386/backtrace.h (MAIN_FUNC): New #define for main function,
> set appropriately for Cygwin on that platform or to "main" elsewhere.
> (fallback_backtrace): Use it to limit stack unwind.
>
> libjava/libltdl/ChangeLog:
>
> * ltdl.h (LT_SCOPE): Change conditional to avoid breaking
> auto-export during libgcj DLL linking.
> * Makefile.am (libltdl_la_LDFLAGS): Remove -bindir switch.
> * Makefile.in: Regenerate.
>
> Bootstrapped at -j4 on i686-pc-cygwin. Tests currently running, results
> anticipated in a few hours. Assuming (as I have every reason to expect) no
> regressions, OK for HEAD?
>
> cheers,
> DaveK
>
>
Hi Dave,
cygwin/mingw part is ok. I tested it additional for regressions for
i686 and x86_64 mingw target.
Cheers,
Kai
--
| (\_/) This is Bunny. Copy and paste
| (='.'=) Bunny into your signature to help
| (")_(") him gain world domination
More information about the Gcc-patches
mailing list