This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, take 2] Build java as two separate DLLs on windows.


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]