| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As described in Warner's email message[1] to the FreeBSD-arch mailing
list we have reached GCC 4.2.1's retirement date. At this time all
supported architectures either use in-tree Clang, or rely on external
toolchain (i.e., a contemporary GCC version from ports).
GCC 4.2.1 was released July 18, 2007 and was imported into FreeBSD later
that year, in r171825. GCC has served us well, but version 4.2.1 is
obsolete and not used by default on any architecture in FreeBSD. It
does not support modern C and does not support arm64 or RISC-V.
Thanks to everyone responsible for maintaining, updating, and testing
GCC in the FreeBSD base system over the years.
So long, and thanks for all the fish.
[1] https://lists.freebsd.org/pipermail/freebsd-arch/2020-January/019823.html
PR: 228919
Reviewed by: brooks, imp
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D23124
Notes:
svn path=/head/; revision=358454
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Change the C++ directory entries to honor --sysroot if it is set.
- Don't define CROSS_INCLUDE_DIR for the cross compiler. Instead, set
TARGET_SYSTEM_ROOT to point to WORLDTMP and always define
STANDARD_INCLUDE_DIR.
- Change STANDARD_INCLUDE_DIR and the C++ include directories to just
start with "/usr" always. The compiler will prepend the sysroot when
doing cross-builds. GCC_INCLUDE_DIR (which contains headers that ship
with the compiler such as intrinsincs rather than OS-supplied headers)
remains hardcoded to look in TOOLS_PREFIX.
Reviewed by: bdrewery (older version)
Sponsored by: DARPA / AFRL
Differential Revision: https://reviews.freebsd.org/D15127
Notes:
svn path=/head/; revision=335717
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Make armv7 as a new MACHINE_ARCH.
Copy all the places we do armv6 and add armv7 as basically an
alias. clang appears to generate code for armv7 by default. armv7 hard
float isn't supported by the the in-tree gcc, so it hasn't been
updated to have a new default.
Support armv7 as a new valid MACHINE_ARCH (and by extension
TARGET_ARCH).
Add armv7 to the universe build.
Differential Revision: https://reviews.freebsd.org/D12010
Notes:
svn path=/head/; revision=324340
|
| |
|
|
|
|
|
| |
Suggested by: emaste@
Notes:
svn path=/head/; revision=322521
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prefer SRCTOP over CURDIR/../../contrib, etc. However, retain the "up
one level" instances of ../ because they are really relative to this
part of the tree and not a means to find the root of the tree. As
such, it's better to leave them since that further the goal of being
able to move directories if watned to in the future.
Differential Revision: https://reviews.freebsd.org/D9932
Sponsored by: Netflix
Silence On: arch@ (twice)
Notes:
svn path=/head/; revision=315175
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
This adds new target architectures for hardfloat:
mipselhf mipshf mips64elhf mips64hf.
Tested in QEMU only.
Sponsored by: DARPA, AFRL
Sponsored by: HEIF5
Differential Revision: https://reviews.freebsd.org/D8376
Notes:
svn path=/head/; revision=308130
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
the oabi is still in the tree, but it is expected this will be removed
as developers work on surrounding code.
With this commit the ARM EABI is the only supported supported ABI by
FreeBSD on ARMa 32-bit processors.
X-MFC after: never
Relnotes: yes
Differential Revision: https://reviews.freebsd.org/D876
Notes:
svn path=/head/; revision=272350
|
| |
|
|
|
|
|
| |
from the latter.
Notes:
svn path=/head/; revision=265420
|
| |
|
|
|
|
|
| |
Reviewed by: pfg
Notes:
svn path=/head/; revision=258445
|
| |
|
|
|
|
|
|
|
| |
ARM EABI support is disabled by default and can be enabled by setting
WITH_ARM_EABI when building, however only the kernel-toolchain target will
work with this flag until the rest of the support is added.
Notes:
svn path=/head/; revision=245539
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r238211:
Support TARGET_ARCH=armv6 and TARGET_ARCH=armv6eb
This adds a new TARGET_ARCH for building on ARM
processors that support the ARMv6K multiprocessor
extensions. In particular, these processors have
better support for TLS and mutex operations.
This mostly touches a lot of Makefiles to extend
existing patterns for inferring CPUARCH from ARCH.
It also configures:
* GCC to default to arm1176jz-s
* GCC to predefine __FreeBSD_ARCH_armv6__
* gas to default to ARM_ARCH_V6K
* uname -p to return 'armv6'
* make so that MACHINE_ARCH defaults to 'armv6'
It also changes a number of headers to use
the compiler __ARM_ARCH_XXX__ macros to configure
processor-specific support routines.
Submitted by: Tim Kientzle <kientzle@freebsd.org>
Notes:
svn path=/head/; revision=239272
|
| |
|
|
|
|
|
|
|
|
|
| |
It was used mainly to discover and fix some 64-bit portability problems
before 64-bit arches were widely available.
Discussed with: bde
Approved by: kib (mentor)
Notes:
svn path=/head/; revision=217128
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement MACHINE_ARCH=mips64e[lb] to build N64 images. This replaces
MACHINE_ARCH=mipse[lb] TARGET_ABI=n64.
MACHINE_ARCH=mipsn32e[lb] has been added, but currently requires
WITHOUT_CDDL due to atomic issues in libzfs. I've not investigated
this much, but implemented this to preserve as much of the TARGET_ABI
functionality that I could. Since its presence doesn't affect the
working cases, I've kept it in for now.
Added mips64e[lb] to make universe, so more kernels build.
And I think this (finally) closes the curtain on the tbemd tree.
Notes:
svn path=/head/; revision=217123
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
TARGET_BIG_ENDIAN is now completely dead, except where it was
originally supposed to be used (internally in the toolchain building).
TARGET_ARCH has changed in three cases:
(1) Little endian mips has changed to mipsel.
(2) Big endian mips has changed to mipseb.
(3) Big endian arm has changed to armeb.
Some additional changes are needed to make 'make universe' work on arm
and mips after this change, so those are commented out for now.
UPDATING information will be forthcoming. Any remaining rough edges
will be hammered out in -current.
Notes:
svn path=/head/; revision=215082
|
| |
|
|
|
|
|
|
|
| |
MIPS-III because FreeBSD relies on a number of MIPS-III features; the ABI
default would be MIPS-I which we don't intend to support. Our old default
before I switched to using the ABI default was MIPS32.
Notes:
svn path=/head/; revision=208758
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
o) Add TARGET_ABI to the MIPS toolchain build process. This sets the default
ABI to one of o32, n32 or n64. If it is not set, o32 is assumed as that is
the current default.
o) Set the default GCC cpu type to any specified TARGET_CPUTYPE. This is
necessary to have a working "cc" if e.g. mips64 is specified, as binutils
will refuse to link objects using different ISAs in some cases.
o) Add support for n32 and n64 ABIs to binutils and GCC.
o) Add additional required libgcc2 stubs for n32 and n64.
o) Add support for the "mips64r2" architecture to GCC. Add the "octeon"
o) When static linking, wrap default libraries in --start-group and
--end-group. This is required for static linking to work on n64 with the
interdependencies between libraries there. This is what other OSes that
support n64 seem to do, as well.
o) Fix our GCC spec to define __mips64 for 64-bit targets, not __mips64__, the
former being what libgcc, etc., check and the latter seemingly being a
misspelling of a hand merge from a Linux spec.
o) When no TARGET_CPUTYPE is specified at build time, make GCC take the default
ISA from the ABI. Our old defaults were too liberal and assumed that 64-bit
ABIs should default to the MIPS64 ISA and that 32-bit ABIs should default to
the MIPS32 ISA, when we are supporting or will support some systems based on
earlier 32-bit and 64-bit ISAs, most notably MIPS-III.
o) Merge a new opcode file (and support code) from a later version of binutils
and add flags and code necessary to support Octeon-specific instructions.
This should also make merging opcodes for other modern architectures easier.
Reviewed by: imp
Notes:
svn path=/head/; revision=208737
|
| |
|
|
|
|
|
|
|
|
| |
headers as GCC, but of their own implementation. So put the GCC ones into
their own header "namespace".
Requested by: ed
Notes:
svn path=/head/; revision=207995
|
| |
|
|
|
|
|
| |
Submitted by: neel@
Notes:
svn path=/head/; revision=204771
|
| |
|
|
|
|
|
|
|
|
| |
In particular, vendor sources that aren't ready for gnu99 should
still be compiled with gnu89. (Before r189824, these would have
generated warnings if you tried to compile them in gnu99 mode,
but the warnings went unheeded due to -Wno-error.)
Notes:
svn path=/head/; revision=189834
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Also:
Switch FreeBSD to use libgcc_s.so.1.
Use dl_iterate_phdr to locate shared objects' exception frame
info instead of depending on older register_frame_info machinery.
This allows us to avoid depending on libgcc_s.so.1 in binaries
that do not use exception handling directly. As an additional
benefit it breaks circular libc <=> libgcc_s.so.1 dependency too.
Build newly added libgomp.so.1 library, the runtime support
bits for OpenMP.
Build LGPLed libssp library. Our libc provides our own
BSD-licensed SSP callbacks implementation, so this library
is only built to benefit applications that have hadcoded
knowledge of libssp.so and libssp_nonshared.a. When linked
in from command line, these libraries override libc
implementation.
Notes:
svn path=/head/; revision=169718
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
'target'. Latter is problematic in particular as apparently FreeBSD's
bsd.prog.mk re-defines it under some circumstances. This causes an
unexpected failures like -dumpmachine not working for cc while working
fine for c++.
Do not re-define IN_GCC in multipe places, it gets inherited from
Makefile.in anyway.
PR: gnu/110143
Submitted by: usleepless at gmail
Notes:
svn path=/head/; revision=167471
|
| |
|
|
|
|
|
|
|
|
|
|
| |
a few issues in other parts of the tree, but those will be resolved
separately.
Submitted by: cogenet@
Reviewed by: kan@, obrien@
MFC After: 5 days
Notes:
svn path=/head/; revision=162417
|
| |
|
|
| |
Notes:
svn path=/head/; revision=97830
|
| |\
| |
| |
| |
| |
| |
| | |
Partially made possible by: Wilko.Bulte@compaq.com
Notes:
svn path=/head/; revision=96340
|
| | |
| |
| |
| |
| |
| |
| | |
MFC: rev 1.61 (needed a different way to keep from multiple inclusion)
Notes:
svn path=/cvs2svn/branches/WIP_GCC31/; revision=96141
|
| | |
| |
| |
| | |
Notes:
svn path=/cvs2svn/branches/WIP_GCC31/; revision=94008
|
| | |
| |
| |
| | |
Notes:
svn path=/cvs2svn/branches/WIP_GCC31/; revision=93802
|
| |
|
|
| |
Notes:
svn path=/cvs2svn/branches/WIP_GCC31/; revision=88098
|
| |
|
|
|
|
|
| |
may want to override GCCDIR and this gets in the way.
Notes:
svn path=/head/; revision=95294
|
| |
|
|
|
|
|
| |
We got rid of the MIPS le/be stuff that needed this a long time ago.
Notes:
svn path=/head/; revision=93738
|
| |
|
|
| |
Notes:
svn path=/head/; revision=93709
|
| |
|
|
| |
Notes:
svn path=/head/; revision=92848
|
| |
|
|
|
|
|
|
|
| |
value, it forces GCC to not optimize above this level. For intance, GCC
made with "WANT_FORCE_OPTIMIZATION_DOWNGRADE=1" is a good setting for the
Alpha platform when building ports.
Notes:
svn path=/head/; revision=81749
|
| |
|
|
|
|
|
| |
It has rotted quite badly and no one has provided updates for it.
Notes:
svn path=/head/; revision=75400
|
| |
|
|
|
|
|
|
|
|
| |
of stuff (and thus length of error output) we put on the invocation command
line. Also follow the new FSF/GNU style of giving the symbol a value so it
can be used in `if()' statements in addition to `#if' so seldomly compiled
in code (on some platforms) gets compiled always, to help reduce bit-rot.
Notes:
svn path=/head/; revision=73306
|
| |
|
|
| |
Notes:
svn path=/head/; revision=68572
|
| |
|
|
|
|
|
| |
on the mainline sources.
Notes:
svn path=/head/; revision=61238
|
| |
|
|
| |
Notes:
svn path=/head/; revision=58954
|
| |
|
|
| |
Notes:
svn path=/head/; revision=57965
|
| |
|
|
| |
Notes:
svn path=/head/; revision=56552
|
| |
|
|
|
|
|
|
|
|
| |
If one wishes to anchor the compiler toolchain tree somewhere other than /,
all one needs to do is set "TOOLS_PREFIX" to a different rooting.
Submitted by: marcel (in a different format and reworked by me)
Notes:
svn path=/head/; revision=55220
|
| |
|
|
| |
Notes:
svn path=/head/; revision=54991
|
| |
|
|
| |
Notes:
svn path=/head/; revision=54988
|
| |
|
|
|
|
|
|
|
|
|
| |
build the compiler with a 64-bit longs on the i386.
* Comment an important dependancy.
* Fix some style nits
Submitted by: bde
Notes:
svn path=/head/; revision=54987
|
| |
|
|
|
|
|
|
| |
* Support mixed OBJDIR handling such .a's are properly found with a mix of
obj subdirs both w/in and outside the source tree works. Requested by BDE.
Notes:
svn path=/head/; revision=54986
|
| |
|
|
|
|
|
|
|
| |
bootstraping on FreeBSD specifically.
3.2 upgrade path tested by: marcel
Notes:
svn path=/head/; revision=54837
|
| |
|
|
|
|
|
|
| |
builds, Also, `sysctl' is not a build-tool and I'd rather not make it one.
3-STABLE has been updated to deal with the main reason this came in.
Notes:
svn path=/head/; revision=53442
|
| |
|
|
| |
Notes:
svn path=/head/; revision=53267
|
| |
|
|
| |
Notes:
svn path=/head/; revision=53173
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When I imported EGCS into contrib/egcs/ I failed to prune out
egcs/gcc/cp/hash.h which is generated from gxx.gperf. Thus `cc1plus' wasn't
using the hash.h we generated by cc/cc_tools/Makefile, but rather the one in
egcs/gcc/cp/.
When I imported contrib/gcc/ I did prune gcc/cp/hash.h. Unfortunately the
GCC maintainers weren't smart on their file nameing and there is also a
egcs/gcc/hash.h (name overloading does NOT work as well on the filesystem
as in C++...). Due to the -I ordering we are were then picking up gcc/hash.h
when compiling `cc1plus'.
Notes:
svn path=/head/; revision=52170
|