[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