Commit graph

45 commits

Author SHA1 Message Date
Mathieu Arnold
305f148f48
Remove # $FreeBSD$ from Makefiles. 2021-04-06 16:31:07 +02:00
Gerald Pfeifer
3c29491c0b Update to MPC version 1.2.0 with the following changes:
- New functions:
   . mpc_sum
   . mpc_dot
 - Several functions are more robust with a reduced exponent range
   (for example corresponding to IEEE 754 binary formats).
 - New mpcheck tool for comparison with the native C library (which
   is not installed by default).

Bump all directly dependent ports. Do not bump those indirectly
dependent via the lang/gcc* family since their run-time dependencies
and code generated should not be affected.

PR:		249950
Submitted by:	wen
2021-03-21 09:57:04 +00:00
Craig Leres
abbce8dfe8 lang/gcc7: Reduce ONLY_FOR_ARCHS to just amd64
devel/xtensa-esp32-elf no longer depends on gcc7 and the last port
dependent on gcc7 is lang/J which only has amd64 in ONLY_FOR_ARCHS.
Remove i386 from gcc7's ONLY_FOR_ARCHS so it matches lang/J.
2020-12-18 01:51:03 +00:00
Gerald Pfeifer
87972e3c42 Pretty exactly 4.5 years after we shipped the first snapshot of GCC 7
hand over maintenance of lang/gcc7 to leres@, who kindly agreed to look
after it while there is still one consumer in the ports tree.

Approved by:	gerald (old maintainer), leres (new maintainer)
2020-11-14 12:04:57 +00:00
Gerald Pfeifer
038fc217f5 Streamline handling of which front ends are built (given that it's
essentially locked to C and C++).

Also remove SSP_UNSAFE which was added by r327697 in 2013 to the
pre-pre-...-predecessor of this port and does not appear necessary
any longer.
2020-11-09 18:33:57 +00:00
Gerald Pfeifer
7a709c50ab Our only consumer in the tree (devel/xtensa-esp32-elf) does not require
Fortran nor Objective-C, so do not build those front ends and libraries
 any longer.

Also remove the BOOTSTRAP option, which has been the default all along,
and bootstrap unconditionally, further simplifying this port.
2020-10-28 19:12:31 +00:00
Gerald Pfeifer
ca2967a69b Remove the GRAPHITE options (which we never enabled by default).
Using an experimental feature in a version that's already been
end of life for a year does not make much sense.
2020-10-15 07:22:47 +00:00
Gerald Pfeifer
6a7ee0ec74 Fix the build with clang 11.
This was fixed upstream as part of a larger commit on May 6th 2017,
and dim@ now encountered the same and fixed the specific issue for
our GCC 7 port.  Newer versions should not exhibit this.

(See the new files/patch-gcc_config_i386_i386.c for more details.)

PR:		248755
Submitted by:	dim
2020-08-22 09:06:01 +00:00
Gerald Pfeifer
6dc29be860 This port covers an end-of-life version of GCC and is in the tree solely
to support the devel/xtensa-esp32-elf port. Since that one now is limited
to amd64 and i386, follow with our own ONLY_FOR_ARCHS setting.

This simplifies this port a fair bit and avoids building on amd/aarch64
and powerpc* platforms.
2020-07-21 10:40:26 +00:00
Gerald Pfeifer
07a76f54ec The lang/gcc7-devel port has left the tree two months ago, so remove
the conflict we had with that (since gccN and gccN-devel install the
very same files).
2020-01-24 12:20:34 +00:00
Gerald Pfeifer
433bdcbf3e Deprecate this port since GCC 7 has been end-of-lifed upstream two months
ago whereas GCC 8 (lang/gcc8) and GCC 9 (lang/gcc9) are still active via
official releases.  As we have been doing historically for older GCC ports,
do not mark for actual expiration yet, though.
2020-01-13 06:06:08 +00:00
Gerald Pfeifer
bb08ef59f6 Update to the GCC 7.5 release.
This brings more than 215 bug fixes over the GCC 7.4 release and closes
this release branch; that is, no more releases or snapshots.
2019-11-14 20:52:53 +00:00
Tobias Kortkamp
e73279ea10 lang/gcc*: Hide pkg-message during upgrades
PR:		239419
Approved by:	gerald (maintainer)
2019-07-24 21:30:44 +00:00
Gerald Pfeifer
372904a840 No longer require a not too old version of GCC to build on powerpc64, but
rely on the system compiler (even if that means we need to be explicitly
conservative when it comes to optimizations). [1]

Simplify the creation of the multilib-related sub-directory tree on
powerpc64 and avoid leaving an empty directory behind on the way. [2]

PR:		235975 [1], 235964 [2], 231804 [2]
Submitted by:	Piotr Kubaj <pkubaj@anongoth.pl> [1]
Discussed with:	Piotr Kubaj <pkubaj@anongoth.pl> [2]
2019-03-10 05:22:49 +00:00
Gerald Pfeifer
75095186da On powerpcspe configure GCC --with-cpu=8548 instead of --with-cpu=8540,
which caused the build to fail after the update to binutils 2.31 and was
factually incorrect anyways (since the oldest we support is 8548).

PR:		235393
Reported by:	jhibbits
2019-02-04 09:40:33 +00:00
Andreas Tobler
118dee2cf7 Fix build of GCC on powerpc64.
While building GCC itself we have to use the built GCC libraries to configure
additional parts of GCC and not the libraires from the host.

Install the built 32-bit libraries. This was not done up to now.

PR:	231804
Approved by:	gerald@
2018-12-29 15:38:30 +00:00
Gerald Pfeifer
a9f015d155 Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.

This includes ports
 - with USE_GCC=yes or USE_GCC=any,
 - with USES=fortran,
 - using Mk/bsd.octave.mk which in turn features USES=fortran, and
 - with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
   c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.

PR:		231590
2018-12-12 01:35:33 +00:00
Gerald Pfeifer
5568b2b4a3 Update to the GCC 7.4 release.
This fixes more than 190 bugs and includes files/patch-libgfortran
which I had also applied upstream.

On the way create a separate USES block earlier in the Makefile and
moving relevant items there. [1]

Reported by:	portlint [1]
2018-12-08 08:35:45 +00:00
Baptiste Daroussin
7990f81066 Install texinfo files (GNU info) into ${PREFIX}/share/info
After a discussion on the mailing list on moving manpages to
${PREFIX}/share/man for consistency with base where it is
installed in usr/share/man, it appeared the same should happen
to GNU info files which were installed under share in base and
not in ports.

Now texinfo is not in base on any of the supported version of FreeBSD
it is possible to proceed to this move and it is easier to do than
the manpage change.

Other benefit than consistency are less patching: all build tools but
cmake are expecting info files to be under share/info and cmake (patched here)
was having an exception for BSD so the patch makes FreeBSD case less
specific for them

Bump revision of all impacted ports

PR:		232907
exp-run by:	antoine
Differential Revision:	https://reviews.freebsd.org/D17816
2018-11-10 18:12:57 +00:00
Gerald Pfeifer
fae9c3042d Copy over files/patch-libgfortran from revision r481429 of lang/gcc7-devel:
Add a partial fix for what was reported in PR 231804, the part that's
actually relevant upstream and that I made there, cf.
https://gcc.gnu.org/ml/gcc-patches/2018-10/msg00076.html as a new
local patch files/patch-libgfortran until I have backported this to the
upstream release branch and hence we get it via the weekly snapshots.

PR:		231804
2018-10-20 10:59:09 +00:00
Mathieu Arnold
f57bc4af66 After an include, PLIST_SUB must be appended to, not overwritten.
If it is overwritten, many values will be clobbered, and
pain will ensue.

PR:		230864
Submitted by:	mat
exp-runs by:	antoine
2018-09-10 13:11:23 +00:00
Kevin Bowling
0440aafd1f lang/gcc7{,-devel}: Fix powerpc64 USE_GCC dependency loop
Approved by:	gerald (maintainer), timur (mentor)
Differential Revision:	https://reviews.freebsd.org/D16784
2018-09-04 22:26:16 +00:00
Gerald Pfeifer
a92c136041 Disable the build/use of libssp/gets-chk since FreeBSD 12 and later
do not feature gets() any longer.

PR:		222796, 231066
Differential Revision:	https://reviews.freebsd.org/D12298
2018-09-01 20:17:46 +00:00
Gerald Pfeifer
09f9633cb6 Bump PORTREVISION for ports depending on the canonical version of GCC
in the ports tree (via Mk/bsd.default-versions.mk and lang/gcc) which
has now moved from GCC 6 to GCC 7 by default.

This includes ports
 - featuring USE_GCC=yes or USE_GCC=any,
 - featuring USES=fortran,
 - using Mk/bsd.octave.mk which in turn features USES=fortran, and those
 - with USES=compiler specifying one of openmp, nestedfct, c11, c++0x,
   c++11-lib, c++11-lang, c++14-lang, c++17-lang, or gcc-c++11-lib.

PR:		222542
2018-07-29 22:18:44 +00:00
Gerald Pfeifer
fb229012f4 Forward port r469788 from lang/gcc6:
Filter the -mretpoline command-line option, which is understood by
  recent versions of clang (and used in the context of the Spectre
  security issues), but not GCC (which uses different options for the
  same) from CFLAGS and CXXFLAGS.

  This avoids the build of this port via bootstrap, which is the default
  and leverages both the system compiler (clang in most cases) plus a just
  built version GCC, to fail due to the latter not knowing -mretpoline.

PR:		228205
Submitted by:	rozhuk.im@gmail.com
2018-05-28 09:04:30 +00:00
Tijl Coosemans
23e99b00ef Run "/usr/sbin/service ldconfig restart" for USE_LDCONFIG instead of
"ldconfig -m <path>" so the order of ldconfig search directories after
package installation is the same as after a reboot.  The original command
simply appends the path to the list of directories while the ldconfig rc.d
script uses "sort -u".

Bump lang/gcc* which are known to install libraries with exactly the same
name so the library loaded at runtime depends on the order of the search
directories.

PR:		228046
Approved by:	portmgr (antoine)
2018-05-14 19:15:36 +00:00
Gerald Pfeifer
6e0547d7d2 Simplify MASTER_SITES, taking advantage of the default for GCC releases
provided by MASTER_SITES_ABBREVS.

Reported by:	portlint
2018-05-13 00:32:07 +00:00
Alex Dupre
aca2d686e3 Update mpfr to 4.0.1 release and bump PORTVERSION of dependent ports. 2018-04-19 07:08:45 +00:00
Danilo Egea Gondolfo
6919f1bde0 math/cloog
- Update to 0.19.0
 - Use github
 - Add ac_cv_prog_TEXI2DVI to avoid building docs for now

devel/isl
 - Update to 0.19

- Bump PORTREVISION of all dependencies
2018-04-08 19:05:36 +00:00
Mark Linimon
d0c5aa8cc1 Allow gcc compilers to be built on new arch 'powerpcspe'.
Tested for no-harm on amd64.

Submitted by:		jhibbits
Approved by:		portmgr (tier-2 blanket)
Differential Revision:	D13126
2018-03-31 12:11:36 +00:00
Gerald Pfeifer
c2a92a1aea Bump PORTREVISIONs of all users of math/mpc that we just updated to
version 1.1.0 (via revision 464079).
2018-03-10 17:46:04 +00:00
Gerald Pfeifer
fa772845f4 Update to the GCC 7.3 release.
This fixes 99+ bugs and includes code generation options to mitigate
Spectre Variant 2 (CVE 2017-5715) for the x86 and powerpc targets
(-mindirect-branch=, -mfunction-return=, and -mindirect-branch-register).

files/patch-armv7-support and files/patch-freebsd-unwind.h, which I
had backported are now included, so remove them.
2018-01-26 09:50:19 +00:00
Gerald Pfeifer
34e60e1c37 Remove special code handling armv7 and armv6 (which for GCC 6 and
5-based ports is necessary for aarch64, armv6 and armv7, but that
we do not need for newer ports). [1]

Shorten the distinct .if statements for architecture-specific settings,
to use .elif instead.

Consulted with:	andreast [1]
2017-12-03 13:33:02 +00:00
Gerald Pfeifer
291bcf354c Make sure what we install is stripped (i.e., debug info is removed).
The straightforward way is setting INSTALL_TARGET to install-strip,
which is supported by the upstream GCC build machinery.

Unfortunately this fails when running as regular user (non-root)
since strip requires write permission to the files in question,
and we install binaries as r-xr-xr-x by default.  To work around
that we need to set BINMODE to allow for write access by the user,
something that's common on GNU/Linux (which is why this probably
has not been noticed there).  This is not necessary when running
as root.

(A different approach suggested was to set STRIP=true, alas that
leads to many files actually not being stripped.  This is due to
GCC using its own script install-sh that in turn uses cp, chmod,
strip,...  instead of our own install-* tools in many cases.)

According to tests by sobomax@ and me installs of lang/gcc6 went
down by about a fourth.

Reported by:	Ports QA Framework, miwi, sobomax
Discussed with:	tijl, miwi
Tested by:	sobomax
Differential Revision:	https://reviews.freebsd.org/D10357
2017-11-14 14:05:47 +00:00
Gerald Pfeifer
3236f26c81 Fix up the format of files/patch-armv7-support .
Reported by:	portlint
2017-11-14 05:38:55 +00:00
Gerald Pfeifer
e4d827b6b3 Add a patch that we just pulled into gcc7-devel via upstream that
addresses a real-world issue around threading and unwinding as
files/patch-freebsd-unwind.h .

This will become obsolete with the next release of GCC 7, GCC 7.3.

Bump PORTREVISION since this is a functional change.
2017-11-11 22:04:15 +00:00
Andreas Tobler
21bc93e34b Add support for armv7-*-freebsd*.
This patch is already upstreamed, it can be dropped when a new GCC 7.x is
available.

PR:	221905
Approved by:	gerald@ (maintainer)
2017-10-10 19:20:31 +00:00
Gerald Pfeifer
e4d127afb7 Add a conflict with the lang/gcc7-devel port as we've had it in lang/gcc5
(for lang/gcc5-devel) for a fair while.

Bump PORTREVISION.
2017-10-02 22:45:01 +00:00
Gerald Pfeifer
aa36701d51 Do not quote constant strings compared with ${ARCH}. [1] Remove
some commented (and thus disabled) logic around this on the way.

This brings the active lang/gcc* release-based ports in sync with
their respective lang/gcc*-devel twins.

PR:		221905 [1]
Submitted by:	linimon [1]
2017-09-17 17:51:24 +00:00
Gerald Pfeifer
e59c88cece Bump PORTREVISION for ports depending on the canonical version of GCC
(via Mk/bsd.default-versions.mk and lang/gcc) which has moved from
GCC 5.4 to GCC 6.4 under most circumstances.

This includes ports
 - with USE_GCC=yes or USE_GCC=any,
 - with USES=fortran,
 - using Mk/bsd.octave.mk which in turn features USES=fortran, and
 - with USES=compiler specifying openmp, nestedfct, c++11-lib, c++11-lang,
   c++14-lang, c++0x, c11, or gcc-c++11-lib.

PR:		219275
2017-09-10 20:55:38 +00:00
Gerald Pfeifer
b3c2de0094 Move ONLY_FOR_ARCHS to its proper place in Makefile. 2017-09-09 07:02:35 +00:00
Gerald Pfeifer
dc385829ed Fix PR 221571 more thoroughly and aligned with lang/gcc6 and lang/gcc5:
release tarballs, unlike snapshots, always contain prebuilt .info files.

PR:		221571
2017-08-16 22:18:53 +00:00
Gerald Pfeifer
ab56535a27 Also package libitm.info and libquadmath.info on aarch64.
PR:		221571
2017-08-16 20:45:06 +00:00
Gerald Pfeifer
b779089d77 Update to the GCC 7.2 release which mostly fixes some hundred bugs.
Also, this now comes as a .tar.xz archive instead of .tar.bz2.
2017-08-15 22:30:05 +00:00
Gerald Pfeifer
0991d76735 Welcome GCC 7.1, the first release of the GCC 7 series!
In terms of optimizations, GCC now uses a new local register allocator
(LRA) for most targets (now also including PowerPC and SPARC), a new
store merging pass, is able to determine the return value or range of
return values of some calls to the sprintf family of functions as
input for futher passes, features improved code hoisting, new
interprocedural bitwise constant propagation, interprocedural value
range propagation, new loop splitting, improved shrink-wrapping that
separates portions of prologues and epilogues, and many more.

DWARF 5 is supported through the -gdwarf-5, while DWARF 4 remains the
default for the time being.

The C and C++ frontends have gained a large number of additional
warnings such as -Wpointer-compare, -Wduplicated-branches, -Wrestrict,
-Wmemset-elt-size, -Wint-in-bool-context, -Wswitch-unreachable,
-Wexpansion-to-defined, -Wregister, -Wvla-larger-than=N,
-Wduplicate-decl-specifier, -Wdangling-else, many of which are
enabled by default or at least with -Wall.

The -Wshadow warning has been split into -Wshadow=global, -Wshadow=local,
and -Wshadow=compatible-local .

GCC 7 also brings a number of enhancements that help detect buffer
overflow and other forms of invalid memory accesses, among others
enabled by the -Walloc-size-larger-than= -Walloc-zero, -Walloca, and
-Walloca-larger-than= command-line options.

-Wformat-overflow=level option detects certain and likely buffer
overflow in calls to the sprintf family of formatted output functions;
and -Wformat-truncation= and -Wstringop-overflow= have been added as
well and -Wnunnull enahcned.

So-called fixit hints, that is, notes on how to possibly address
a warning or error have seen signficant improvements.

The command-line option -fdiagnostics-generate-patch will print a
patch in "unified" format after any diagnostics are printed, showing
the result of applying all fix-it hints.

The C front end now supports type names _FloatN for floating-point
types with IEEE interchange formats and _FloatNx for floating-point
types with IEEE extended formats.

The C++ front end has experimental support for all of the current
C++17 draft with the -std=c++1z or -std=gnu++1z flags, including if
constexpr, class template argument deduction, auto template parameters,
and structured bindings. Experimental support for C++17 is in libstdc++
with lots of new features.

libstdc++ Profile Mode and Cilk+ extensions to the C and C++ languages
have been deprecated.

Fortran added a number of extensions for compatibility with legacy code
and improved and add various features.

GCC 7 provides a complete implementation of the Go 1.8.1 user package.

Notably this release ends the history of Java (GCJ and libgcj) as part
of GCC; all traces thereof and options have been removed in favor of
OpenJDK, quite simplifying and streamlining building this port,

Many new processors such as ARM Cortex-A73, Broadcom Vulcan, Cavium
ThunderX models, Qualcomm Falkor (all on the ARM side) and features
such as AVX-512 enhancements (on x86-64) as well as optimization
changes have been added.

On ARM targets (arm*-*-*), a bug introduced in GCC 5 that affects
conformance to the procedure call standard (AAPCS) has been fixed. The
bug affects some C++ code where class objects are passed by value to
functions and could result in incorrect or inconsistent code being
generated. This is an ABI change. If the option -Wpsabi is enabled
(on by default) the compiler will emit a diagnostic note for code that
might be affected.

https://gcc.gnu.org/gcc-7/changes.html has a comprehensive set of
changes and https://gcc.gnu.org/gcc-7/porting_to.html has a helpful
overview of issue you may encountering porting to this new version.

PR:		220794
2017-08-14 23:20:34 +00:00