2021-01-07 10:47:47 +01:00
|
|
|
# $NetBSD: Makefile,v 1.94 2021/01/07 09:47:47 fcambus Exp $
|
2002-04-30 14:33:29 +02:00
|
|
|
|
2020-12-06 19:07:53 +01:00
|
|
|
DISTNAME= binutils-2.35.1
|
2021-01-07 10:47:47 +01:00
|
|
|
PKGREVISION= 4
|
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
|
|
|
|
2017-05-28 04:28:24 +02:00
|
|
|
.if ${OPSYS} != "IRIX" && ${OPSYS} != "AIX"
|
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
|
|
|
|
2014-05-12 14:49:59 +02:00
|
|
|
.if ${OPSYS} != SunOS
|
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"
|