From 3894d909e48c302c358eefa4981830b076e3e972 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 10 Jun 2014 15:05:23 -0500 Subject: cygwin-gcc 4.8.3 --- cygwin-gcc.spec | 139 +++++------------------------------------- gcc48-libatomic-cygwin.patch | 60 +++++++++--------- gcc48-libgcc-references.patch | 45 -------------- gcc49-default-manifest.patch | 31 ++++++++++ sources | 2 +- 5 files changed, 76 insertions(+), 201 deletions(-) delete mode 100644 gcc48-libgcc-references.patch create mode 100644 gcc49-default-manifest.patch diff --git a/cygwin-gcc.spec b/cygwin-gcc.spec index 51f2053..162e830 100644 --- a/cygwin-gcc.spec +++ b/cygwin-gcc.spec @@ -2,25 +2,20 @@ # and the name of libgcj-*.pc %global gcc_major 4 %global gcc_minor 8 -%global gcc_micro 2 +%global gcc_micro 3 %global gcc_branch %{gcc_major}.%{gcc_minor} %global gcc_version %{gcc_major}.%{gcc_minor}.%{gcc_micro} # Note, gcc_release must be integer, if you want to add suffixes to # %%{release}, append them after %%{gcc_release} on Release: line. -%global gcc_release 2 +%global gcc_release 1 %global build_ada 0 # building cross-gnat requires matching X.Y version of native gnat -%if 0%{?fedora} >= 19 && 0%{?fedora} < 22 || 0%{?rhel} == 7 +%if 0%{?fedora} >= 19 && 0%{?fedora} < 21 || 0%{?rhel} == 7 %ifarch %{ix86} x86_64 ia64 ppc ppc64 alpha %global build_ada 1 %endif %endif -%if 0%{?rhel} >= 7 -%global build_java 0 -%else -%global build_java 1 -%endif %global __os_install_post /usr/lib/rpm/brp-compress %{nil} @@ -53,31 +48,18 @@ BuildRequires: gettext %if %{build_ada} BuildRequires: gcc-gnat %endif -%if %{build_java} -BuildRequires: cygwin32-libiconv -BuildRequires: cygwin32-zlib -BuildRequires: gcc-c++ -BuildRequires: gcc-java -%endif Source0: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%{gcc_version}/gcc-%{gcc_version}.tar.bz2 Patch0: gcc46-textdomain.patch Patch1: gcc47-ada.patch -Patch3: gcc47-libffi-noinst.patch Patch4: gcc47-libstdc-cygwin.patch -Patch7: gcc47-cross-jardir.patch -Patch9: gcc47-cross-ecjx.patch -Patch10: gcc45-java-FIONREAD.diff Patch13: gcc45-cross-exe-suffix.diff -Patch14: gcc47-boehm-gc-cygwin.patch Patch15: gcc47-execstack.patch -Patch16: gcc47-java-jni.patch Patch17: gcc48-specs-cygwin.patch Patch19: gcc48-lto-plugin-soname.patch -Patch20: gcc48-java-soname.patch Patch21: gcc48-libatomic-cygwin.patch -Patch22: gcc48-libgcc-references.patch Patch23: gcc48-Wimplicit-decls.patch +Patch24: gcc49-default-manifest.patch %description @@ -106,6 +88,9 @@ Provides: cygwin(cyggomp-1.dll) Provides: cygwin(cygssp-0.dll) Provides: %{name} = %{version}-%{release} Obsoletes: %{name} < 4.7 +# prevent update errors +Obsoletes: %{name}-java < %{version}-%{release} +Obsoletes: cygwin32-gcc-java < %{version}-%{release} %description -n cygwin32-gcc @@ -198,46 +183,18 @@ Obsoletes: %{name}-gnat < 4.7 Cygwin cross-compiler for Ada. -%package -n cygwin32-gcc-java -Summary: Cygwin cross-compiler for Java -Group: Development/Languages -Requires: cygwin32-gcc = %{version}-%{release} -Requires: ecj -Requires: cygwin32-libiconv -Requires: cygwin32-zlib -# We don't run the automatic dependency scripts which would -# normally detect and provide the following DLL: -Provides: cygwin32(cyggcj-14.dll) -Provides: cygwin32(cyggcj-noncore-14.dll) -Provides: cygwin32(cyggcj-tools-14.dll) -Provides: cygwin32(cyggij-14.dll) -Provides: cygwin32(cygjvm.dll) -Provides: %{name}-java = %{version}-%{release} -Obsoletes: %{name}-java < 4.7 - -%description -n cygwin32-gcc-java -Cygwin cross-compiler for Java. - - %prep %setup -q -n gcc-%{gcc_version} %patch0 -p2 %patch1 -p2 -%patch3 -p2 %patch4 -p2 -%patch7 -p2 -%patch9 -p1 -%patch10 -p2 %patch13 -p1 -%patch14 -p2 %patch15 -p2 -%patch16 -p2 %patch17 -p0 %patch19 -p2 -%patch20 -p0 %patch21 -p2 -%patch22 -p0 %patch23 -p2 +%patch24 -p0 echo %{gcc_version} > gcc/BASE-VER echo 'Fedora Cygwin %{gcc_version}-%{gcc_release}' > gcc/DEV-PHASE @@ -250,9 +207,6 @@ pushd build_cyg32 %if %{build_ada} enablelada=,ada %endif -%if %{build_java} -enableljava=,java -%endif CC="%{__cc} ${RPM_OPT_FLAGS}" \ ../configure \ @@ -280,20 +234,13 @@ CC="%{__cc} ${RPM_OPT_FLAGS}" \ %if 0%{?fedora} >= 15 || 0%{?rhel} == 7 --enable-graphite \ %endif - --enable-languages="c,c++,objc,obj-c++${enableljava},fortran${enablelada},lto" \ + --enable-languages="c,c++,objc,obj-c++,fortran${enablelada},lto" \ --enable-lto --disable-symvers \ --enable-libgomp --disable-libitm --enable-libssp \ --enable-libquadmath --enable-libquadmath-support \ --with-python-dir=/share/gcc-%{gcc_version}/%{cygwin32_target}/python \ %if %{build_ada} --enable-libada \ -%endif -%if %{build_java} - --enable-libjava \ - --enable-libgcj-sublibs --disable-jni --disable-java-awt \ - --enable-default-preferences-peer=file \ - --with-ecj-jar=%{_datadir}/java/ecj.jar \ - --without-libiconv-prefix \ %endif --with-bugurl=http://cygwinports.org @@ -312,32 +259,10 @@ make DESTDIR=$RPM_BUILD_ROOT install rm -rf $RPM_BUILD_ROOT%{_infodir} rm -f $RPM_BUILD_ROOT%{_libdir}/libiberty* rm -f $RPM_BUILD_ROOT%{_mandir}/man7/* -%if %{build_java} -rm -fr $RPM_BUILD_ROOT%{_libdir}/gcj-%{version}-* -rm -fr $RPM_BUILD_ROOT%{_libdir}/logging.properties -rm -fr $RPM_BUILD_ROOT%{_libdir}/security/ -rm -f $RPM_BUILD_ROOT%{_datadir}/gcc-%{gcc_version}/%{cygwin32_target}/python/*.py -#rm -f $RPM_BUILD_ROOT%{_datadir}/gcc-%{gcc_version}/%{cygwin64_target}/python/*.py -%endif # This file is provided by cygwin32-libbfd rm -f $RPM_BUILD_ROOT%{_prefix}/%{cygwin32_target}/lib/libiberty.a -# These scripts are not intended for cross-compiling scenarios -%if %{build_java} -rm -f $RPM_BUILD_ROOT%{_bindir}/%{cygwin32_target}-aot-compile -rm -f $RPM_BUILD_ROOT%{_bindir}/%{cygwin32_target}-jcf-dump -rm -f $RPM_BUILD_ROOT%{_bindir}/%{cygwin32_target}-rebuild-gcj-db -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-aot-compile* -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-g[^+cfn]* -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-gc-analyze* -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-gcj-dbtool* -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-gcjh* -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-gnative2ascii* -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-j* -rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{cygwin32_target}-rebuild-gcj-db* -%endif - mkdir -p $RPM_BUILD_ROOT/lib ln -sf ..%{_prefix}/bin/%{cygwin32_target}-cpp \ $RPM_BUILD_ROOT/lib/%{cygwin32_target}-cpp @@ -349,14 +274,6 @@ mv $RPM_BUILD_ROOT%{_libdir}/gcc/%{cygwin32_target}/*.dll \ $RPM_BUILD_ROOT%{_libdir}/gcc/%{cygwin32_target}/%{gcc_version}/*.dll \ $RPM_BUILD_ROOT%{cygwin32_bindir} - -%if %{build_java} -# Move libgcj pkg-config files into sysroot -mkdir -p $RPM_BUILD_ROOT%{cygwin32_libdir}/pkgconfig -mv $RPM_BUILD_ROOT%{_libdir}/pkgconfig/* \ - $RPM_BUILD_ROOT%{cygwin32_libdir}/pkgconfig -%endif - # Don't want the *.la files. find $RPM_BUILD_ROOT -name '*.la' -delete @@ -494,40 +411,12 @@ rm -rf $RPM_BUILD_ROOT %endif -%if %{build_java} -%files -n cygwin32-gcc-java -%defattr(-,root,root,-) -%{_bindir}/%{cygwin32_target}-gcj -%{_mandir}/man1/%{cygwin32_target}-gcj.1* -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/gcj/ -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/gnu/ -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/java/ -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/javax/ -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/org/ -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/c++/sun/ -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/gcj/ -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/jawt*.h -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/jni*.h -%{_libdir}/gcc/%{cygwin32_target}/%{version}/include/jvmpi.h -%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcj.dll.a -%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcj-noncore.dll.a -%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcj.spec -%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgcj-tools.dll.a -%{_libdir}/gcc/%{cygwin32_target}/%{version}/libgij.dll.a -%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/ecj1 -%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/jc1 -%{_libexecdir}/gcc/%{cygwin32_target}/%{version}/jvgenmain -%{cygwin32_bindir}/cyggcj-14.dll -%{cygwin32_bindir}/cyggcj-noncore-14.dll -%{cygwin32_bindir}/cyggcj-tools-14.dll -%{cygwin32_bindir}/cyggij-14.dll -%{cygwin32_bindir}/cygjvm.dll -%{cygwin32_libdir}/pkgconfig/libgcj-4.8.pc -%{_datadir}/gcc-%{gcc_version}/%{cygwin32_target}/java -%endif - - %changelog +* Tue Jun 10 2014 Yaakov Selkowitz - 4.8.3-1 +- Version bump. +- Remove java support (dropped from F21/EL7). +- Added patch to support default manifest. + * Tue Jan 21 2014 Yaakov Selkowitz - 4.8.2-2 - Fix 64-bit builtin types for i686-cygwin target. diff --git a/gcc48-libatomic-cygwin.patch b/gcc48-libatomic-cygwin.patch index 2ab3dc6..af28245 100644 --- a/gcc48-libatomic-cygwin.patch +++ b/gcc48-libatomic-cygwin.patch @@ -38,8 +38,29 @@ m4_include([../config/multi.m4]) m4_include([../config/override.m4]) m4_include([../config/stdint.m4]) ---- origsrc/gcc-4.8-20130310/libatomic/configure 2013-03-10 17:37:36.000000000 -0500 -+++ src/gcc-4.8-20130310/libatomic/configure 2013-03-17 05:29:38.288507000 -0500 +--- origsrc/gcc-4.8-20130310/libatomic/configure.ac 2013-01-14 12:16:23.000000000 -0600 ++++ src/gcc-4.8-20130310/libatomic/configure.ac 2013-03-17 05:29:30.655070400 -0500 +@@ -143,6 +143,7 @@ + + # Configure libtool + AM_PROG_LIBTOOL ++ACX_LT_HOST_FLAGS + AC_SUBST(enable_shared) + AC_SUBST(enable_static) + AM_MAINTAINER_MODE +--- origsrc/gcc-4.8-20130310/libatomic/configure.tgt 2013-01-14 12:16:23.000000000 -0600 ++++ src/gcc-4.8-20130310/libatomic/configure.tgt 2013-03-17 04:50:09.727033000 -0500 +@@ -108,7 +108,7 @@ + *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu \ + | *-*-netbsd* | *-*-freebsd* | *-*-openbsd* \ + | *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11* \ +- | *-*-darwin* | *-*-aix*) ++ | *-*-darwin* | *-*-aix* | *-*-cygwin*) + # POSIX system. The OS is supported. + config_path="${config_path} posix" + ;; +--- origsrc/gcc-4.8-20130310/libatomic/configure 2014-05-22 17:13:49.000000000 +0800 ++++ src/gcc-4.8-20130310/libatomic/configure 2014-05-24 12:40:30.720760000 +0800 @@ -627,6 +627,7 @@ MAINTAINER_MODE_TRUE enable_static @@ -48,25 +69,25 @@ CPP OTOOL64 OTOOL -@@ -11013,7 +11014,7 @@ +@@ -11019,7 +11020,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF --#line 11016 "configure" -+#line 11017 "configure" +-#line 11022 "configure" ++#line 11023 "configure" #include "confdefs.h" #if HAVE_DLFCN_H -@@ -11119,7 +11120,7 @@ +@@ -11125,7 +11126,7 @@ lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF --#line 11122 "configure" -+#line 11123 "configure" +-#line 11128 "configure" ++#line 11129 "configure" #include "confdefs.h" #if HAVE_DLFCN_H -@@ -11357,6 +11358,28 @@ +@@ -11363,6 +11364,28 @@ @@ -95,24 +116,3 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 ---- origsrc/gcc-4.8-20130310/libatomic/configure.ac 2013-01-14 12:16:23.000000000 -0600 -+++ src/gcc-4.8-20130310/libatomic/configure.ac 2013-03-17 05:29:30.655070400 -0500 -@@ -143,6 +143,7 @@ - - # Configure libtool - AM_PROG_LIBTOOL -+ACX_LT_HOST_FLAGS - AC_SUBST(enable_shared) - AC_SUBST(enable_static) - AM_MAINTAINER_MODE ---- origsrc/gcc-4.8-20130310/libatomic/configure.tgt 2013-01-14 12:16:23.000000000 -0600 -+++ src/gcc-4.8-20130310/libatomic/configure.tgt 2013-03-17 04:50:09.727033000 -0500 -@@ -108,7 +108,7 @@ - *-*-linux* | *-*-gnu* | *-*-k*bsd*-gnu \ - | *-*-netbsd* | *-*-freebsd* | *-*-openbsd* \ - | *-*-solaris2* | *-*-sysv4* | *-*-irix6* | *-*-osf* | *-*-hpux11* \ -- | *-*-darwin* | *-*-aix*) -+ | *-*-darwin* | *-*-aix* | *-*-cygwin*) - # POSIX system. The OS is supported. - config_path="${config_path} posix" - ;; diff --git a/gcc48-libgcc-references.patch b/gcc48-libgcc-references.patch deleted file mode 100644 index c8918b8..0000000 --- a/gcc48-libgcc-references.patch +++ /dev/null @@ -1,45 +0,0 @@ ---- libgcc/config/i386/cygming-crtbegin.c.orig 2013-07-25 18:39:34.579552100 +0800 -+++ libgcc/config/i386/cygming-crtbegin.c 2013-07-25 18:43:51.778712300 +0800 -@@ -100,6 +100,8 @@ - extern void __gcc_register_frame (void); - extern void __gcc_deregister_frame (void); - -+static HANDLE libgcc_dll; -+ - void - __gcc_register_frame (void) - { -@@ -112,8 +114,11 @@ - void (*register_frame_fn) (const void *, struct object *); - HANDLE h = GetModuleHandle (LIBGCC_SONAME); - if (h) -- register_frame_fn = (void (*) (const void *, struct object *)) -- GetProcAddress (h, "__register_frame_info"); -+ { -+ libgcc_dll = LoadLibrary (LIBGCC_SONAME); /* Hold reference */ -+ register_frame_fn = (void (*) (const void *, struct object *)) -+ GetProcAddress (h, "__register_frame_info"); -+ } - else - register_frame_fn = __register_frame_info; - if (register_frame_fn) -@@ -142,13 +147,16 @@ - { - #if DWARF2_UNWIND_INFO - void * (*deregister_frame_fn) (const void *); -- HANDLE h = GetModuleHandle (LIBGCC_SONAME); -- if (h) -+ if (libgcc_dll) - deregister_frame_fn = (void* (*) (const void *)) -- GetProcAddress (h, "__deregister_frame_info"); -+ GetProcAddress (libgcc_dll, "__deregister_frame_info"); - else - deregister_frame_fn = __deregister_frame_info; - if (deregister_frame_fn) - deregister_frame_fn (__EH_FRAME_BEGIN__); -+ -+if (libgcc_dll) -+ FreeLibrary (libgcc_dll); -+ - #endif - } diff --git a/gcc49-default-manifest.patch b/gcc49-default-manifest.patch new file mode 100644 index 0000000..afb2c77 --- /dev/null +++ b/gcc49-default-manifest.patch @@ -0,0 +1,31 @@ +2014-04-23 Nick Clifton + + * config/i386/cygwin.h (ENDFILE_SPEC): Include + default-manifest.o if it can be found in the search path. + * config/i386/mingw32.h (ENDFILE_SPEC): Likewise. + +Index: gcc/config/i386/cygwin.h +=================================================================== +--- gcc/config/i386/cygwin.h (revision 209670) ++++ gcc/config/i386/cygwin.h (working copy) +@@ -45,6 +45,7 @@ + #undef ENDFILE_SPEC + #define ENDFILE_SPEC \ + "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s}\ ++ %{!shared:%:if-exists(default-manifest.o%s)}\ + crtend.o%s" + + /* Normally, -lgcc is not needed since everything in it is in the DLL, but we +Index: gcc/config/i386/mingw32.h +=================================================================== +--- gcc/config/i386/mingw32.h (revision 209670) ++++ gcc/config/i386/mingw32.h (working copy) +@@ -148,6 +148,7 @@ + #undef ENDFILE_SPEC + #define ENDFILE_SPEC \ + "%{Ofast|ffast-math|funsafe-math-optimizations:crtfastmath.o%s} \ ++ %{!shared:%:if-exists(default-manifest.o%s)}\ + crtend.o%s" + + /* Override startfile prefix defaults. */ + diff --git a/sources b/sources index bad02c9..b707160 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -a3d7d63b9cb6b6ea049469a0c4a43c9d gcc-4.8.2.tar.bz2 +7c60f24fab389f77af203d2516ee110f gcc-4.8.3.tar.bz2 -- cgit