binutils: update to 2.36.
Changes in 2.36:
* Update elfedit and readelf with LAM_U48 and LAM_U57 support.
* Nm has a new command line option: --ifunc-chars=CHARS. This specifies a
string of one or two characters. The first character is used as the type
character when displaying global ifunc symbols. The second character, if
present is used when displaying local ifunc symbols.
In addition a new configure time option --enable-f-for-ifunc-symbols has been
created, which if used will change nm's default characters for ifunc symbols
from i (both local and global) to F (global) and f (local).
* The ar tool's previously unused l modifier is now used for specifying
dependencies of a static library. The arguments of this option
(or --record-libdeps long form option) will be stored verbatim in the
__.LIBDEP member of the archive, which the linker may read at link time.
* Readelf can now display the contents of LTO symbol table sections when asked
to do so via the --lto-syms command line option.
* Readelf now accepts the -C command line option to enable the demangling of
symbol names. In addition the --demangle=<style>, --no-demangle,
--recurse-limit and --no-recurse-limit options are also now availale.
* Add support for the SHF_GNU_RETAIN ELF section flag.
This flag specifies that the section should not be garbage collected by the
linker.
gas changes in 2.36:
* Add support for Intel AVX VNNI instructions.
* Add support for Intel HRESET instruction.
* Add support for Intel UINTR instructions.
* Support non-absolute segment values for i386 lcall and ljmp.
* When setting the link order attribute of ELF sections, it is now possible to
use a numeric section index instead of symbol name.
* Add support for Cortex-A78, Cortex-A78AE, Cortex-A78C and Cortex-X1 for
AArch64 and ARM.
Add support for Cortex-R82, Neoverse V1, and Neoverse N2 for ARM.
* Add support for ETMv4 (Embedded Trace Macrocell), ETE (Embedded Trace
Extension), TRBE (Trace Buffer Extension)and BRBE (Branch Record Buffer
Extension) system registers for AArch64.
* Add support for Armv8-R and Armv8.7-A AArch64.
* Add support for DSB memory nXS barrier, WFET and WFIT instruction for Armv8.7
AArch64.
* Add support for +flagm feature for -march in Armv8.4 AArch64.
* Add support for +ls64 feature for -march in Armv8.7 AArch64. Add atomic
64-byte load/store instructions for this feature.
* Add support for +pauth (Pointer Authentication) feature for -march in
AArch64.
* Add support for Intel TDX instructions.
* Add support for Intel Key Locker instructions.
* Added a .nop directive to generate a single no-op instruction in a target
neutral manner. This instruction does have an effect on DWARF line number
generation, if that is active.
* Removed --reduce-memory-overheads and --hash-size as gas now
uses hash tables that can be expand and shrink automatically.
* Add {disp16} pseudo prefix to x86 assembler.
* Add support for Intel AMX instructions.
* Configure with --enable-x86-used-note by default for Linux/x86.
* Add support for the SHF_GNU_RETAIN flag, which can be applied to
sections using the 'R' flag in the .section directive.
SHF_GNU_RETAIN specifies that the section should not be garbage
collected by the linker. It requires the GNU or FreeBSD ELF OSABIs.
ld changes in 2.36:
* Add libdep plugin, for linking dependencies of static libraries that
were recorded by ar in the __.LIBDEP archive member.
* Add --error-handling-script=<NAME> command line option to allow a helper
script to be invoked when an undefined symbol or a missing library is
encountered. This option can be suppressed via the configure time
switch: --enable-error-handling-script=no.
* Add -z lam-u48 to x86-64 ELF linker to generate LAM_U48 property.
* Add -z lam-u57 to x86-64 ELF linker to enerate LAM_U57 property.
* Add -z lam-u48-report=[none|warning|error] to report missing LAM_U48
property.
* Add -z lam-u57-report=[none|warning|error] to report missing LAM_U57
property.
* Add -z lam-report=[none|warning|error] to report missing LAM_U48 and
LAM_U57 properties.
* Add -z x86-64-{baseline|v[234]} to the x86 ELF linker to mark
x86-64-{baseline|v[234]} ISA level as needed.
* Add -z unique-symbol to avoid duplicated local symbol names.
* The creation of PE format DLLs now defaults to using a more secure set of DLL
characteristics.
* The linker now deduplicates the types in .ctf sections. The new
command-line option --ctf-share-types describes how to do this:
its default value, share-unconflicted, produces the most compact
output.
* The linker now omits the "variable section" from .ctf sections by
default, saving space. This is almost certainly what you want
unless you are working on a project that has its own analogue
of symbol tables that are not reflected in the ELF symtabs.
* Add support for the SHF_GNU_RETAIN ELF section flag.
This flag specifies that the section should not be garbage collected by the
linker.
2021-01-27 16:21:21 +01:00
|
|
|
# $NetBSD: Makefile,v 1.96 2021/01/27 15:21:21 fcambus Exp $
|
2002-04-30 14:33:29 +02:00
|
|
|
|
binutils: update to 2.36.
Changes in 2.36:
* Update elfedit and readelf with LAM_U48 and LAM_U57 support.
* Nm has a new command line option: --ifunc-chars=CHARS. This specifies a
string of one or two characters. The first character is used as the type
character when displaying global ifunc symbols. The second character, if
present is used when displaying local ifunc symbols.
In addition a new configure time option --enable-f-for-ifunc-symbols has been
created, which if used will change nm's default characters for ifunc symbols
from i (both local and global) to F (global) and f (local).
* The ar tool's previously unused l modifier is now used for specifying
dependencies of a static library. The arguments of this option
(or --record-libdeps long form option) will be stored verbatim in the
__.LIBDEP member of the archive, which the linker may read at link time.
* Readelf can now display the contents of LTO symbol table sections when asked
to do so via the --lto-syms command line option.
* Readelf now accepts the -C command line option to enable the demangling of
symbol names. In addition the --demangle=<style>, --no-demangle,
--recurse-limit and --no-recurse-limit options are also now availale.
* Add support for the SHF_GNU_RETAIN ELF section flag.
This flag specifies that the section should not be garbage collected by the
linker.
gas changes in 2.36:
* Add support for Intel AVX VNNI instructions.
* Add support for Intel HRESET instruction.
* Add support for Intel UINTR instructions.
* Support non-absolute segment values for i386 lcall and ljmp.
* When setting the link order attribute of ELF sections, it is now possible to
use a numeric section index instead of symbol name.
* Add support for Cortex-A78, Cortex-A78AE, Cortex-A78C and Cortex-X1 for
AArch64 and ARM.
Add support for Cortex-R82, Neoverse V1, and Neoverse N2 for ARM.
* Add support for ETMv4 (Embedded Trace Macrocell), ETE (Embedded Trace
Extension), TRBE (Trace Buffer Extension)and BRBE (Branch Record Buffer
Extension) system registers for AArch64.
* Add support for Armv8-R and Armv8.7-A AArch64.
* Add support for DSB memory nXS barrier, WFET and WFIT instruction for Armv8.7
AArch64.
* Add support for +flagm feature for -march in Armv8.4 AArch64.
* Add support for +ls64 feature for -march in Armv8.7 AArch64. Add atomic
64-byte load/store instructions for this feature.
* Add support for +pauth (Pointer Authentication) feature for -march in
AArch64.
* Add support for Intel TDX instructions.
* Add support for Intel Key Locker instructions.
* Added a .nop directive to generate a single no-op instruction in a target
neutral manner. This instruction does have an effect on DWARF line number
generation, if that is active.
* Removed --reduce-memory-overheads and --hash-size as gas now
uses hash tables that can be expand and shrink automatically.
* Add {disp16} pseudo prefix to x86 assembler.
* Add support for Intel AMX instructions.
* Configure with --enable-x86-used-note by default for Linux/x86.
* Add support for the SHF_GNU_RETAIN flag, which can be applied to
sections using the 'R' flag in the .section directive.
SHF_GNU_RETAIN specifies that the section should not be garbage
collected by the linker. It requires the GNU or FreeBSD ELF OSABIs.
ld changes in 2.36:
* Add libdep plugin, for linking dependencies of static libraries that
were recorded by ar in the __.LIBDEP archive member.
* Add --error-handling-script=<NAME> command line option to allow a helper
script to be invoked when an undefined symbol or a missing library is
encountered. This option can be suppressed via the configure time
switch: --enable-error-handling-script=no.
* Add -z lam-u48 to x86-64 ELF linker to generate LAM_U48 property.
* Add -z lam-u57 to x86-64 ELF linker to enerate LAM_U57 property.
* Add -z lam-u48-report=[none|warning|error] to report missing LAM_U48
property.
* Add -z lam-u57-report=[none|warning|error] to report missing LAM_U57
property.
* Add -z lam-report=[none|warning|error] to report missing LAM_U48 and
LAM_U57 properties.
* Add -z x86-64-{baseline|v[234]} to the x86 ELF linker to mark
x86-64-{baseline|v[234]} ISA level as needed.
* Add -z unique-symbol to avoid duplicated local symbol names.
* The creation of PE format DLLs now defaults to using a more secure set of DLL
characteristics.
* The linker now deduplicates the types in .ctf sections. The new
command-line option --ctf-share-types describes how to do this:
its default value, share-unconflicted, produces the most compact
output.
* The linker now omits the "variable section" from .ctf sections by
default, saving space. This is almost certainly what you want
unless you are working on a project that has its own analogue
of symbol tables that are not reflected in the ELF symtabs.
* Add support for the SHF_GNU_RETAIN ELF section flag.
This flag specifies that the section should not be garbage collected by the
linker.
2021-01-27 16:21:21 +01:00
|
|
|
DISTNAME= binutils-2.36
|
2002-04-30 14:33:29 +02:00
|
|
|
CATEGORIES= devel
|
|
|
|
MASTER_SITES= ${MASTER_SITE_GNU:=binutils/}
|
devel/binutils: update to 2.34
pkgsrc changes:
MAKE_JOBS_SAFE=no has been removed since binutils built fine with
MAKE_JOBS=3 on NetBSD-8.0-x86_64.
In some of the patches, all context lines have been removed since the raw
change is expressive enough without any context.
The patch for popcount is no longer necessary since the function has been
renamed in bfd.
upstream changes since 2.26:
Changes in 2.34:
* Binutils now supports debuginfod, an HTTP server for distributing
ELF/DWARF debugging information as well as source code. When built with
debuginfod, readelf and objdump can automatically query debuginfod
servers for separate debug files when they otherwise cannot be found.
To build binutils with debuginfod, pass --with-debuginfod to configure.
This requires libdebuginfod, the debuginfod client library. debuginfod
is distributed with elfutils, starting with version 0.178. For more
information see https://sourceware.org/elfutils.
* Add --output option to the "ar" program. This option can be used to specify
the output directory when extracting members from an archive.
* Add --keep-section option to objcopy and strip. This option keeps the
specified section from being removed.
* Add visualization of jumps inside a function by drawing an ascii character
graph between the address and the disassembler column. Enabled via the
--visualize-jumps command line option for objdump. Currently supported by
the x86, x86_64, and ARM targets. The output looks something like this:
c6: | | \----------> be 00 00 00 00 mov $0x0,%esi
cb: | | /----> 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # d2 <main+0xd2>
d2: | | | 31 c0 xor %eax,%eax
d4: | | | /-- e8 00 00 00 00 callq d9 <main+0xd9>
d9: | | | \-> bf 02 00 00 00 mov $0x2,%edi
de: | +-----------|----- e8 00 00 00 00 callq e3 <main+0xe3>
e3: | \-----------|----> 48 89 da mov %rbx,%rdx
e6: | | be 00 00 00 00 mov $0x0,%esi
eb: | \----- eb de jmp cb <main+0xcb>
ed: \-------------------> 48 8b 16 mov (%rsi),%rdx
Additional arguments to the --visualize-jumps option add colors to the
output.
Changes in 2.33:
* Add --source-comment[=<txt>] option to objdump which if present,
provides a prefix to source code lines displayed in a disassembly.
* Add --set-section-alignment <section-name>=<align> option to objcopy to allow
the changing of section alignments.
* Add --verilog-data-width option to objcopy for verilog targets to control
width of data elements in verilog hex format.
* Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
instructions.
* The separate debug info file options of readelf (--debug-dump=links
and --debug-dump=follow) and objdump (--dwarf=links and
--dwarf=follow-links) will now display and/or follow multiple links if
more than one are present in a file. (This usually happens when gcc's
-gsplit-dwarf option is used).
In addition objdump's --dwarf=follow-links now also affects its other
display options, so that for example, when combined with --syms it will
cause the symbol tables in any linked debug info files to also be
displayed. In addition when combined with --disassemble the --dwarf=
follow-links option will ensure that any symbol tables in the linked
files are read and used when disassembling code in the main file.
* Add support for dumping types encoded in the Compact Type Format
to objdump and readelf.
Changes in 2.32:
* The addr2line, c++filt, nm and objdump tools now have a limit on the
maximum amount of recursion that is allowed whilst demangling strings.
The value for this limit is defined by the DEMANGLE_RECRUSE_LIMIT
constant declared in the include/demangle.h header file. At the time
of writing this constant has the value of 2048.
The --no-recurse-limit option can be used to remove the limit, restoring
the behaviour of earlier versions of these tools. This may be needed in
order to dmangle truly complicated names, but it also leaves the tools
vulnerable to stack exhaustion from maliciously constructed mangled names.
* Objdump's --disassemble option can now take a parameter, specifying the
starting symbol for disassembly. Disassembly will continue from this
symbol up to the next symbol or the end of the function.
* The MIPS port now supports the Loongson 2K1000 processor which implements
the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE, Loongson-ext ASE,
Loongson-ext2 ASE and MSA ASE instructions. Add -march=gs264e option for
Loongson 2K1000 processor.
* The MIPS port now supports the Loongson 3A2000/3A3000 processor which
implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE,
Loongson-ext ASE and Loongson-ext2 ASE instructions. Add -march=gs464e
option for Loongson 3A2000/3A3000 processor.
* The MIPS port now supports the Loongson 3A1000 processor, aka Loongson3a,
which implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE
and Loongson-ext ASE instructions. Add -march=gs464 option for Loongson
3A1000 processor, The -march=loongson3a is an alias of -march=gs464 for
compatibility.
* The size tool now has a new output format '--format=GNU' or '-G'. The
results are displayed in a similar manor to the default berkeley layout,
except read-only data is counted in the data column, not the text column.
Additionally the total is only included once.
Changes in 2.31:
* Add support for disassembling netronome Flow Processor (NFP) firmware files.
* The AArch64 port now supports showing disassembly notes which are emitted
when inconsistencies are found with the instruction that may result in the
instruction being invalid. These can be turned on with the option -M notes
to objdump.
* The AArch64 port now emits warnings when a combination of an instruction and
a named register could be invalid.
* Added O modifier to ar to display member offsets inside an archive
Changes in 2.30:
* Add --debug-dump=links option to readelf and --dwarf=links option to objdump
which displays the contents of any .gnu_debuglink or .gnu_debugaltlink
sections.
Add a --debug-dump=follow-links option to readelf and a --dwarf=follow-links
option to objdump which causes indirect links into separate debug info files
to be followed when dumping other DWARF sections.
Changes in 2.29:
* The MIPS port now supports microMIPS eXtended Physical Addressing (XPA)
instructions for assembly and disassembly.
* The MIPS port now supports the microMIPS Release 5 ISA for assembly and
disassembly.
* The MIPS port now supports the Imagination interAptiv MR2 processor,
which implements the MIPS32r3 ISA, the MIPS16e2 ASE as well as a couple
of implementation-specific regular MIPS and MIPS16e2 ASE instructions.
* The SPARC port now supports the SPARC M8 processor, which implements the
Oracle SPARC Architecture 2017.
* The MIPS port now supports the MIPS16e2 ASE for assembly and disassembly.
* Add support for ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX.
* Add support for the wasm32 ELF conversion of the WebAssembly file format.
* Add --inlines option to objdump, which extends the --line-numbers option
so that inlined functions will display their nesting information.
* Add --merge-notes options to objcopy to reduce the size of notes in
a binary file by merging and deleting redundant notes.
* Add support for locating separate debug info files using the build-id
method, where the separate file has a name based upon the build-id of
the original file.
Changes in 2.28:
* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
relocations which were functionally swapped, for example,
R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
performed like R_PPC_VLE_HA16A. This could have been fixed by
renumbering relocations, which would keep object files created by an
older version of gas compatible with a newer ld. However, that would
require an ABI update, affecting other assemblers and linkers that
create and process the relocations correctly. It is recommended that
all VLE object files be recompiled, but ld can modify the relocations
if --vle-reloc-fixup is passed to ld. If the new ld command-line
option is not used, ld will ld warn on finding relocations inconsistent
with the instructions being relocated.
* The nm program has a new command-line option (--with-version-strings)
which will display a symbol's version information, if any, after the
symbol's name.
* The ARC port of objdump now accepts a -M option to specify the extra
instruction class(es) that should be disassembled.
* The --remove-section option for objcopy and strip now accepts section
patterns starting with an exclamation point to indicate a non-matching
section. A non-matching section is removed from the set of sections
matched by an earlier --remove-section pattern.
* The --only-section option for objcopy now accepts section patterns
starting with an exclamation point to indicate a non-matching section.
A non-matching section is removed from the set of sections matched by
an earlier --only-section pattern.
* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
This option can be used to remove sections containing relocations.
The SECTIONPATTERN is the section to which the relocations apply, not
the relocation section itself.
Changes in 2.27:
* Add a configure option, --enable-64-bit-archive, to force use of a
64-bit format when creating an archive symbol index.
* Add --elf-stt-common= option to objcopy for ELF targets to control
whether to convert common symbols to the STT_COMMON type.
2020-02-05 07:18:34 +01:00
|
|
|
EXTRACT_SUFX= .tar.bz2
|
2002-04-30 14:33:29 +02:00
|
|
|
|
2020-12-20 23:41:31 +01:00
|
|
|
MAINTAINER= fcambus@NetBSD.org
|
2017-08-16 21:59:50 +02:00
|
|
|
HOMEPAGE= https://www.gnu.org/software/binutils/
|
2002-04-30 14:33:29 +02:00
|
|
|
COMMENT= GNU binary utilities
|
2012-07-23 14:24:34 +02:00
|
|
|
LICENSE= gnu-gpl-v2 AND gnu-gpl-v3 AND gnu-lgpl-v2 AND gnu-lgpl-v3
|
2015-03-20 23:46:09 +01:00
|
|
|
|
2004-01-31 12:25:31 +01:00
|
|
|
CONFLICTS= avr-binutils<2.13.2.1nb1
|
|
|
|
|
2019-11-03 11:39:04 +01:00
|
|
|
USE_PKGLOCALEDIR= yes
|
2005-03-17 23:49:09 +01:00
|
|
|
REPLACE_LOCALEDIR_PATTERNS+= Make-in
|
Update to binutils "2.14.0.0". (The ".0.0" is to allow any PKGREVISION
bumps to correctly sort before "2.14.1", and "2.14.1.1", and so on.)
Follows is a list of additions to the "NEWS" files since 2.13. The "NEWS"
files were apparently not updated for "2.13.2.1" however, so all of this
is not really new. The "--with-sysroot" and "--with-lib-path" configure
options for "ld" are truly new, though, and the package now takes advantage
of "--with-lib-path" to prevent picking up crud from "${PREFIX}/lib", to
better support using this "ld" with which to build pkgsrc packages.
----- binutils/binutils/NEWS -----
* Added --info switch to objcopy and strip.
* Support for Vitesse IQ2000 added by Red Hat.
* Added 'S' encoding to strings to allow the display of 8-bit characters.
* Added --prefix-symbols=<text>, --prefix-sections=<text> and
--prefix-alloc-sections=<text> to objcopy.
* readelf can handle the extensions to the DWARF2 spec used by the Unified
Parallel C compiler.
* BFD no longer declares a "boolean" type, to avoid clashes with other
headers that declare the same. Users of BFD should replace boolean,
false and true, with int, 0 and 1, or define their own boolean type.
* Support for IP2K added by Denis Chertykov.
----- binutils/gas/NEWS -----
* Added support for MIPS32 Release 2.
* Added support for Xtensa architecture.
* Support for Intel's iWMMXt processor (an ARM variant) added.
* An assembler test generator has been contributed and an example file that
uses it (gas/testsuite/gas/all/test-gen.c and test-exmaple.c).
* Support for SH2E added.
* GASP has now been removed.
* Support for Texas Instruments TMS320C4x and TMS320C3x series of
DSP's contributed by Michael Hayes and Svein E. Seldal.
* Support for the Ubicom IP2xxx microcontroller added.
----- binutils/ld/NEWS -----
* Added support for Xtensa architecture.
* Added --with-sysroot configure switch to specify a target system root, for
linking against a target filesystem image.
* Added --accept-unknown-linker-format to restore old linker behaviour (pre
2.14) of silently accepting and linking in any files in an unknown binary
file format.
* Added --no-omagic to undo the effects of the -N option.
* Support for Texas Instruments TMS320C4x and TMS320C3x series of
DSP's contributed by Michael Hayes and Svein E. Seldal.
* Added --with-lib-path configure switch to specify default value for
LIB_PATH.
* ARM port to QNX operating system added by Graeme Peterson.
* IP2K support added by Denis Chertykov.
2003-07-14 21:01:35 +02:00
|
|
|
|
2012-07-23 14:24:34 +02:00
|
|
|
USE_LANGUAGES= c c++
|
|
|
|
USE_LIBTOOL= yes
|
2020-05-05 12:06:10 +02:00
|
|
|
USE_TOOLS+= gmake
|
2012-07-23 14:24:34 +02:00
|
|
|
|
2014-01-13 16:06:55 +01:00
|
|
|
# PR pkg/48504, ksh is sufficient for NetBSD 5.2 and NetBSD 6.1
|
|
|
|
.include "../../mk/bsd.prefs.mk"
|
|
|
|
.if !empty(MACHINE_PLATFORM:MNetBSD-[5-6].*-*) && \
|
|
|
|
empty(MACHINE_PLATFORM:MNetBSD-6.99.*-*)
|
|
|
|
USE_TOOLS+= ksh
|
|
|
|
CONFIG_SHELL= ksh
|
|
|
|
.endif
|
|
|
|
|
2020-05-13 05:32:38 +02:00
|
|
|
TOOLS_BROKEN+= perl
|
2004-01-31 12:25:31 +01:00
|
|
|
GNU_CONFIGURE= yes
|
devel/binutils: update to 2.34
pkgsrc changes:
MAKE_JOBS_SAFE=no has been removed since binutils built fine with
MAKE_JOBS=3 on NetBSD-8.0-x86_64.
In some of the patches, all context lines have been removed since the raw
change is expressive enough without any context.
The patch for popcount is no longer necessary since the function has been
renamed in bfd.
upstream changes since 2.26:
Changes in 2.34:
* Binutils now supports debuginfod, an HTTP server for distributing
ELF/DWARF debugging information as well as source code. When built with
debuginfod, readelf and objdump can automatically query debuginfod
servers for separate debug files when they otherwise cannot be found.
To build binutils with debuginfod, pass --with-debuginfod to configure.
This requires libdebuginfod, the debuginfod client library. debuginfod
is distributed with elfutils, starting with version 0.178. For more
information see https://sourceware.org/elfutils.
* Add --output option to the "ar" program. This option can be used to specify
the output directory when extracting members from an archive.
* Add --keep-section option to objcopy and strip. This option keeps the
specified section from being removed.
* Add visualization of jumps inside a function by drawing an ascii character
graph between the address and the disassembler column. Enabled via the
--visualize-jumps command line option for objdump. Currently supported by
the x86, x86_64, and ARM targets. The output looks something like this:
c6: | | \----------> be 00 00 00 00 mov $0x0,%esi
cb: | | /----> 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # d2 <main+0xd2>
d2: | | | 31 c0 xor %eax,%eax
d4: | | | /-- e8 00 00 00 00 callq d9 <main+0xd9>
d9: | | | \-> bf 02 00 00 00 mov $0x2,%edi
de: | +-----------|----- e8 00 00 00 00 callq e3 <main+0xe3>
e3: | \-----------|----> 48 89 da mov %rbx,%rdx
e6: | | be 00 00 00 00 mov $0x0,%esi
eb: | \----- eb de jmp cb <main+0xcb>
ed: \-------------------> 48 8b 16 mov (%rsi),%rdx
Additional arguments to the --visualize-jumps option add colors to the
output.
Changes in 2.33:
* Add --source-comment[=<txt>] option to objdump which if present,
provides a prefix to source code lines displayed in a disassembly.
* Add --set-section-alignment <section-name>=<align> option to objcopy to allow
the changing of section alignments.
* Add --verilog-data-width option to objcopy for verilog targets to control
width of data elements in verilog hex format.
* Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
instructions.
* The separate debug info file options of readelf (--debug-dump=links
and --debug-dump=follow) and objdump (--dwarf=links and
--dwarf=follow-links) will now display and/or follow multiple links if
more than one are present in a file. (This usually happens when gcc's
-gsplit-dwarf option is used).
In addition objdump's --dwarf=follow-links now also affects its other
display options, so that for example, when combined with --syms it will
cause the symbol tables in any linked debug info files to also be
displayed. In addition when combined with --disassemble the --dwarf=
follow-links option will ensure that any symbol tables in the linked
files are read and used when disassembling code in the main file.
* Add support for dumping types encoded in the Compact Type Format
to objdump and readelf.
Changes in 2.32:
* The addr2line, c++filt, nm and objdump tools now have a limit on the
maximum amount of recursion that is allowed whilst demangling strings.
The value for this limit is defined by the DEMANGLE_RECRUSE_LIMIT
constant declared in the include/demangle.h header file. At the time
of writing this constant has the value of 2048.
The --no-recurse-limit option can be used to remove the limit, restoring
the behaviour of earlier versions of these tools. This may be needed in
order to dmangle truly complicated names, but it also leaves the tools
vulnerable to stack exhaustion from maliciously constructed mangled names.
* Objdump's --disassemble option can now take a parameter, specifying the
starting symbol for disassembly. Disassembly will continue from this
symbol up to the next symbol or the end of the function.
* The MIPS port now supports the Loongson 2K1000 processor which implements
the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE, Loongson-ext ASE,
Loongson-ext2 ASE and MSA ASE instructions. Add -march=gs264e option for
Loongson 2K1000 processor.
* The MIPS port now supports the Loongson 3A2000/3A3000 processor which
implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE,
Loongson-ext ASE and Loongson-ext2 ASE instructions. Add -march=gs464e
option for Loongson 3A2000/3A3000 processor.
* The MIPS port now supports the Loongson 3A1000 processor, aka Loongson3a,
which implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE
and Loongson-ext ASE instructions. Add -march=gs464 option for Loongson
3A1000 processor, The -march=loongson3a is an alias of -march=gs464 for
compatibility.
* The size tool now has a new output format '--format=GNU' or '-G'. The
results are displayed in a similar manor to the default berkeley layout,
except read-only data is counted in the data column, not the text column.
Additionally the total is only included once.
Changes in 2.31:
* Add support for disassembling netronome Flow Processor (NFP) firmware files.
* The AArch64 port now supports showing disassembly notes which are emitted
when inconsistencies are found with the instruction that may result in the
instruction being invalid. These can be turned on with the option -M notes
to objdump.
* The AArch64 port now emits warnings when a combination of an instruction and
a named register could be invalid.
* Added O modifier to ar to display member offsets inside an archive
Changes in 2.30:
* Add --debug-dump=links option to readelf and --dwarf=links option to objdump
which displays the contents of any .gnu_debuglink or .gnu_debugaltlink
sections.
Add a --debug-dump=follow-links option to readelf and a --dwarf=follow-links
option to objdump which causes indirect links into separate debug info files
to be followed when dumping other DWARF sections.
Changes in 2.29:
* The MIPS port now supports microMIPS eXtended Physical Addressing (XPA)
instructions for assembly and disassembly.
* The MIPS port now supports the microMIPS Release 5 ISA for assembly and
disassembly.
* The MIPS port now supports the Imagination interAptiv MR2 processor,
which implements the MIPS32r3 ISA, the MIPS16e2 ASE as well as a couple
of implementation-specific regular MIPS and MIPS16e2 ASE instructions.
* The SPARC port now supports the SPARC M8 processor, which implements the
Oracle SPARC Architecture 2017.
* The MIPS port now supports the MIPS16e2 ASE for assembly and disassembly.
* Add support for ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX.
* Add support for the wasm32 ELF conversion of the WebAssembly file format.
* Add --inlines option to objdump, which extends the --line-numbers option
so that inlined functions will display their nesting information.
* Add --merge-notes options to objcopy to reduce the size of notes in
a binary file by merging and deleting redundant notes.
* Add support for locating separate debug info files using the build-id
method, where the separate file has a name based upon the build-id of
the original file.
Changes in 2.28:
* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
relocations which were functionally swapped, for example,
R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
performed like R_PPC_VLE_HA16A. This could have been fixed by
renumbering relocations, which would keep object files created by an
older version of gas compatible with a newer ld. However, that would
require an ABI update, affecting other assemblers and linkers that
create and process the relocations correctly. It is recommended that
all VLE object files be recompiled, but ld can modify the relocations
if --vle-reloc-fixup is passed to ld. If the new ld command-line
option is not used, ld will ld warn on finding relocations inconsistent
with the instructions being relocated.
* The nm program has a new command-line option (--with-version-strings)
which will display a symbol's version information, if any, after the
symbol's name.
* The ARC port of objdump now accepts a -M option to specify the extra
instruction class(es) that should be disassembled.
* The --remove-section option for objcopy and strip now accepts section
patterns starting with an exclamation point to indicate a non-matching
section. A non-matching section is removed from the set of sections
matched by an earlier --remove-section pattern.
* The --only-section option for objcopy now accepts section patterns
starting with an exclamation point to indicate a non-matching section.
A non-matching section is removed from the set of sections matched by
an earlier --only-section pattern.
* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
This option can be used to remove sections containing relocations.
The SECTIONPATTERN is the section to which the relocations apply, not
the relocation section itself.
Changes in 2.27:
* Add a configure option, --enable-64-bit-archive, to force use of a
64-bit format when creating an archive symbol index.
* Add --elf-stt-common= option to objcopy for ELF targets to control
whether to convert common symbols to the STT_COMMON type.
2020-02-05 07:18:34 +01:00
|
|
|
GNU_CONFIGURE_STRICT= no
|
2018-05-28 16:15:38 +02:00
|
|
|
# Standard lib dirs on RHEL are named *lib64
|
2019-11-03 11:39:04 +01:00
|
|
|
LIB_PATH= /lib:/usr/lib
|
2018-05-28 16:15:38 +02:00
|
|
|
.if exists(/usr/lib64)
|
2019-11-03 11:39:04 +01:00
|
|
|
LIB_PATH:= /usr/lib64:${LIB_PATH}
|
2018-05-28 16:15:38 +02:00
|
|
|
.endif
|
|
|
|
.if exists(/lib64)
|
2019-11-03 11:39:04 +01:00
|
|
|
LIB_PATH:= /lib64:${LIB_PATH}
|
2018-05-28 16:15:38 +02:00
|
|
|
.endif
|
2019-11-03 11:39:04 +01:00
|
|
|
CONFIGURE_ARGS+= --with-lib-path=${LIB_PATH}
|
2012-06-02 13:54:38 +02:00
|
|
|
CONFIGURE_ARGS+= --program-prefix=g
|
2004-01-31 12:25:31 +01:00
|
|
|
BINUTILS_PREFIX= ${PREFIX}/${MACHINE_GNU_PLATFORM}
|
2003-09-19 15:00:43 +02:00
|
|
|
|
2002-12-25 17:53:51 +01:00
|
|
|
PLIST_SRC= ${PKGDIR}/PLIST.common
|
|
|
|
PLIST_SRC+= ${WRKDIR}/PLIST_DYNAMIC
|
2002-08-12 04:17:23 +02:00
|
|
|
|
2011-08-22 10:51:46 +02:00
|
|
|
INFO_FILES= yes
|
2020-12-10 18:03:56 +01:00
|
|
|
TEST_TARGET= check
|
2004-07-04 19:16:32 +02:00
|
|
|
|
2020-12-15 10:18:14 +01:00
|
|
|
TEST_DEPENDS+= dejagnu-[0-9]*:../../devel/dejagnu
|
|
|
|
|
2012-12-31 01:27:36 +01:00
|
|
|
INSTALLATION_DIRS= ${PKGGNUDIR}bin ${PKGGNUDIR}${PKGMANDIR}/man1
|
2012-06-02 13:54:38 +02:00
|
|
|
|
2004-08-07 21:06:59 +02:00
|
|
|
# gprof (XXX: and others?) cannot be built on all platforms
|
2004-07-04 19:16:32 +02:00
|
|
|
#
|
2020-03-10 20:01:31 +01:00
|
|
|
PLIST_VARS+= gprof ld gold SunOS CTF
|
2012-11-21 01:17:11 +01:00
|
|
|
|
2004-07-04 19:16:32 +02:00
|
|
|
.include "../../mk/bsd.prefs.mk"
|
2012-11-21 01:17:11 +01:00
|
|
|
|
2021-01-23 09:48:57 +01:00
|
|
|
.if ${OPSYS} != "IRIX" && ${OPSYS} != "AIX" && ${OPSYS} != "Darwin"
|
2008-04-13 00:42:57 +02:00
|
|
|
PLIST.gprof= yes
|
2012-11-21 00:05:22 +01:00
|
|
|
.endif
|
2012-11-21 01:17:11 +01:00
|
|
|
|
2021-01-23 09:48:57 +01:00
|
|
|
.if ${OPSYS} != SunOS && ${OPSYS} != "Darwin"
|
2012-11-21 00:05:22 +01:00
|
|
|
PLIST.ld= yes
|
2004-07-04 19:16:32 +02:00
|
|
|
.endif
|
|
|
|
|
2015-06-09 22:24:39 +02:00
|
|
|
.if ${OPSYS} == SunOS
|
|
|
|
PLIST.SunOS= yes
|
|
|
|
.endif
|
|
|
|
|
2020-03-10 20:01:31 +01:00
|
|
|
# Temporary: libctf should be mature on Linux in the near future
|
|
|
|
.if ${OPSYS} != Linux
|
|
|
|
PLIST.CTF= yes
|
|
|
|
.endif
|
|
|
|
|
2014-05-12 14:49:59 +02:00
|
|
|
.if ${OPSYS} == DragonFly \
|
2014-05-13 08:41:31 +02:00
|
|
|
|| (${OPSYS} == FreeBSD && empty(OS_VERSION:M[12345678].*)) \
|
|
|
|
|| (${OPSYS} == OpenBSD && empty(OS_VERSION:M[1234].*)) \
|
2020-12-10 23:26:49 +01:00
|
|
|
|| (${OPSYS} == NetBSD && empty(OS_VERSION:M[12345].*)) \
|
|
|
|
|| ${OPSYS} == Linux
|
2019-11-03 11:39:04 +01:00
|
|
|
BUILD_GOLD= yes
|
|
|
|
PLIST.gold= yes
|
|
|
|
USE_TOOLS+= bison
|
|
|
|
CONFIGURE_ARGS+= --enable-gold --enable-plugins
|
2014-05-12 14:49:59 +02:00
|
|
|
.endif
|
|
|
|
|
2011-09-08 01:41:04 +02:00
|
|
|
.include "../../mk/compiler.mk"
|
|
|
|
.if !empty(PKGSRC_COMPILER:Mclang)
|
|
|
|
CFLAGS+= -Wno-unused-value -Wno-format-security \
|
2012-10-21 00:06:55 +02:00
|
|
|
-Wno-uninitialized -Wno-format -Wno-string-plus-int \
|
2015-02-21 01:09:50 +01:00
|
|
|
-Wno-empty-body -Wno-self-assign -Wno-unused-function \
|
|
|
|
-Wno-error=unused-const-variable
|
2011-09-08 01:41:04 +02:00
|
|
|
.endif
|
|
|
|
|
devel/binutils: update to 2.34
pkgsrc changes:
MAKE_JOBS_SAFE=no has been removed since binutils built fine with
MAKE_JOBS=3 on NetBSD-8.0-x86_64.
In some of the patches, all context lines have been removed since the raw
change is expressive enough without any context.
The patch for popcount is no longer necessary since the function has been
renamed in bfd.
upstream changes since 2.26:
Changes in 2.34:
* Binutils now supports debuginfod, an HTTP server for distributing
ELF/DWARF debugging information as well as source code. When built with
debuginfod, readelf and objdump can automatically query debuginfod
servers for separate debug files when they otherwise cannot be found.
To build binutils with debuginfod, pass --with-debuginfod to configure.
This requires libdebuginfod, the debuginfod client library. debuginfod
is distributed with elfutils, starting with version 0.178. For more
information see https://sourceware.org/elfutils.
* Add --output option to the "ar" program. This option can be used to specify
the output directory when extracting members from an archive.
* Add --keep-section option to objcopy and strip. This option keeps the
specified section from being removed.
* Add visualization of jumps inside a function by drawing an ascii character
graph between the address and the disassembler column. Enabled via the
--visualize-jumps command line option for objdump. Currently supported by
the x86, x86_64, and ARM targets. The output looks something like this:
c6: | | \----------> be 00 00 00 00 mov $0x0,%esi
cb: | | /----> 48 8b 3d 00 00 00 00 mov 0x0(%rip),%rdi # d2 <main+0xd2>
d2: | | | 31 c0 xor %eax,%eax
d4: | | | /-- e8 00 00 00 00 callq d9 <main+0xd9>
d9: | | | \-> bf 02 00 00 00 mov $0x2,%edi
de: | +-----------|----- e8 00 00 00 00 callq e3 <main+0xe3>
e3: | \-----------|----> 48 89 da mov %rbx,%rdx
e6: | | be 00 00 00 00 mov $0x0,%esi
eb: | \----- eb de jmp cb <main+0xcb>
ed: \-------------------> 48 8b 16 mov (%rsi),%rdx
Additional arguments to the --visualize-jumps option add colors to the
output.
Changes in 2.33:
* Add --source-comment[=<txt>] option to objdump which if present,
provides a prefix to source code lines displayed in a disassembly.
* Add --set-section-alignment <section-name>=<align> option to objcopy to allow
the changing of section alignments.
* Add --verilog-data-width option to objcopy for verilog targets to control
width of data elements in verilog hex format.
* Add support for the Armv8.1-M Mainline and M-profile Vector Extension (MVE)
instructions.
* The separate debug info file options of readelf (--debug-dump=links
and --debug-dump=follow) and objdump (--dwarf=links and
--dwarf=follow-links) will now display and/or follow multiple links if
more than one are present in a file. (This usually happens when gcc's
-gsplit-dwarf option is used).
In addition objdump's --dwarf=follow-links now also affects its other
display options, so that for example, when combined with --syms it will
cause the symbol tables in any linked debug info files to also be
displayed. In addition when combined with --disassemble the --dwarf=
follow-links option will ensure that any symbol tables in the linked
files are read and used when disassembling code in the main file.
* Add support for dumping types encoded in the Compact Type Format
to objdump and readelf.
Changes in 2.32:
* The addr2line, c++filt, nm and objdump tools now have a limit on the
maximum amount of recursion that is allowed whilst demangling strings.
The value for this limit is defined by the DEMANGLE_RECRUSE_LIMIT
constant declared in the include/demangle.h header file. At the time
of writing this constant has the value of 2048.
The --no-recurse-limit option can be used to remove the limit, restoring
the behaviour of earlier versions of these tools. This may be needed in
order to dmangle truly complicated names, but it also leaves the tools
vulnerable to stack exhaustion from maliciously constructed mangled names.
* Objdump's --disassemble option can now take a parameter, specifying the
starting symbol for disassembly. Disassembly will continue from this
symbol up to the next symbol or the end of the function.
* The MIPS port now supports the Loongson 2K1000 processor which implements
the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE, Loongson-ext ASE,
Loongson-ext2 ASE and MSA ASE instructions. Add -march=gs264e option for
Loongson 2K1000 processor.
* The MIPS port now supports the Loongson 3A2000/3A3000 processor which
implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE,
Loongson-ext ASE and Loongson-ext2 ASE instructions. Add -march=gs464e
option for Loongson 3A2000/3A3000 processor.
* The MIPS port now supports the Loongson 3A1000 processor, aka Loongson3a,
which implements the MIPS64r2 ISA, the Loongson-mmi ASE, Loongson-cam ASE
and Loongson-ext ASE instructions. Add -march=gs464 option for Loongson
3A1000 processor, The -march=loongson3a is an alias of -march=gs464 for
compatibility.
* The size tool now has a new output format '--format=GNU' or '-G'. The
results are displayed in a similar manor to the default berkeley layout,
except read-only data is counted in the data column, not the text column.
Additionally the total is only included once.
Changes in 2.31:
* Add support for disassembling netronome Flow Processor (NFP) firmware files.
* The AArch64 port now supports showing disassembly notes which are emitted
when inconsistencies are found with the instruction that may result in the
instruction being invalid. These can be turned on with the option -M notes
to objdump.
* The AArch64 port now emits warnings when a combination of an instruction and
a named register could be invalid.
* Added O modifier to ar to display member offsets inside an archive
Changes in 2.30:
* Add --debug-dump=links option to readelf and --dwarf=links option to objdump
which displays the contents of any .gnu_debuglink or .gnu_debugaltlink
sections.
Add a --debug-dump=follow-links option to readelf and a --dwarf=follow-links
option to objdump which causes indirect links into separate debug info files
to be followed when dumping other DWARF sections.
Changes in 2.29:
* The MIPS port now supports microMIPS eXtended Physical Addressing (XPA)
instructions for assembly and disassembly.
* The MIPS port now supports the microMIPS Release 5 ISA for assembly and
disassembly.
* The MIPS port now supports the Imagination interAptiv MR2 processor,
which implements the MIPS32r3 ISA, the MIPS16e2 ASE as well as a couple
of implementation-specific regular MIPS and MIPS16e2 ASE instructions.
* The SPARC port now supports the SPARC M8 processor, which implements the
Oracle SPARC Architecture 2017.
* The MIPS port now supports the MIPS16e2 ASE for assembly and disassembly.
* Add support for ELF SHF_GNU_MBIND and PT_GNU_MBIND_XXX.
* Add support for the wasm32 ELF conversion of the WebAssembly file format.
* Add --inlines option to objdump, which extends the --line-numbers option
so that inlined functions will display their nesting information.
* Add --merge-notes options to objcopy to reduce the size of notes in
a binary file by merging and deleting redundant notes.
* Add support for locating separate debug info files using the build-id
method, where the separate file has a name based upon the build-id of
the original file.
Changes in 2.28:
* This version of binutils fixes a problem with PowerPC VLE 16A and 16D
relocations which were functionally swapped, for example,
R_PPC_VLE_HA16A performed like R_PPC_VLE_HA16D while R_PPC_VLE_HA16D
performed like R_PPC_VLE_HA16A. This could have been fixed by
renumbering relocations, which would keep object files created by an
older version of gas compatible with a newer ld. However, that would
require an ABI update, affecting other assemblers and linkers that
create and process the relocations correctly. It is recommended that
all VLE object files be recompiled, but ld can modify the relocations
if --vle-reloc-fixup is passed to ld. If the new ld command-line
option is not used, ld will ld warn on finding relocations inconsistent
with the instructions being relocated.
* The nm program has a new command-line option (--with-version-strings)
which will display a symbol's version information, if any, after the
symbol's name.
* The ARC port of objdump now accepts a -M option to specify the extra
instruction class(es) that should be disassembled.
* The --remove-section option for objcopy and strip now accepts section
patterns starting with an exclamation point to indicate a non-matching
section. A non-matching section is removed from the set of sections
matched by an earlier --remove-section pattern.
* The --only-section option for objcopy now accepts section patterns
starting with an exclamation point to indicate a non-matching section.
A non-matching section is removed from the set of sections matched by
an earlier --only-section pattern.
* New --remove-relocations=SECTIONPATTERN option for objcopy and strip.
This option can be used to remove sections containing relocations.
The SECTIONPATTERN is the section to which the relocations apply, not
the relocation section itself.
Changes in 2.27:
* Add a configure option, --enable-64-bit-archive, to force use of a
64-bit format when creating an archive symbol index.
* Add --elf-stt-common= option to objcopy for ELF targets to control
whether to convert common symbols to the STT_COMMON type.
2020-02-05 07:18:34 +01:00
|
|
|
SYMLINK_FILES= addr2line ar as c++filt dlltool elfedit ld.bfd \
|
2012-11-21 00:05:22 +01:00
|
|
|
nlmconv nm objcopy objdump ranlib readelf size strings \
|
|
|
|
strip windmc windres
|
2012-11-21 08:46:40 +01:00
|
|
|
.if defined(PLIST.gprof)
|
2012-11-21 00:05:22 +01:00
|
|
|
SYMLINK_FILES+= gprof
|
|
|
|
.endif
|
2012-11-21 08:46:40 +01:00
|
|
|
.if defined(PLIST.ld)
|
2012-11-21 00:05:22 +01:00
|
|
|
SYMLINK_FILES+= ld
|
|
|
|
.endif
|
2014-05-12 14:49:59 +02:00
|
|
|
.if defined(BUILD_GOLD)
|
|
|
|
SYMLINK_FILES+= ld.gold dwp
|
|
|
|
.endif
|
2012-11-21 00:05:22 +01:00
|
|
|
|
2002-08-12 04:17:23 +02:00
|
|
|
post-install:
|
2012-07-23 14:24:34 +02:00
|
|
|
cd ${DESTDIR}${PREFIX} && \
|
|
|
|
find ${MACHINE_GNU_PLATFORM}/lib/ldscripts -type f -print \
|
|
|
|
| sort -r \
|
|
|
|
> ${WRKDIR}/PLIST_DYNAMIC
|
2012-11-21 00:05:22 +01:00
|
|
|
.for f in ${SYMLINK_FILES}
|
2012-06-02 13:54:38 +02:00
|
|
|
set -e; \
|
2012-07-23 14:24:34 +02:00
|
|
|
if [ -f ${DESTDIR}${PREFIX}/bin/g${f:Q} ]; then \
|
2012-12-06 12:38:19 +01:00
|
|
|
${LN} -sf ${PREFIX}/bin/g${f} ${DESTDIR}${PREFIX}/${PKGGNUDIR}bin/${f}; \
|
2012-06-02 13:54:38 +02:00
|
|
|
fi
|
2012-07-23 14:24:34 +02:00
|
|
|
if [ -f ${DESTDIR}${PREFIX}/${PKGMANDIR}/man1/g${f:Q}.1 ]; then \
|
|
|
|
${LN} -sf ${PREFIX}/${PKGMANDIR}/man1/g${f}.1 \
|
2012-12-06 12:38:19 +01:00
|
|
|
${DESTDIR}${PREFIX}/${PKGGNUDIR}${PKGMANDIR}/man1/${f}.1; \
|
2012-06-02 13:54:38 +02:00
|
|
|
fi
|
|
|
|
.endfor
|
2002-08-12 04:17:23 +02:00
|
|
|
|
2014-05-27 11:56:10 +02:00
|
|
|
.include "../../mk/dlopen.buildlink3.mk"
|
2002-04-30 14:33:29 +02:00
|
|
|
.include "../../mk/bsd.pkg.mk"
|