- Jun 03, 2021
-
-
Guillem Jover authored
This is based on the ARCv2 32-bit little-endian hard-float ISA. Closes: #980963 Based-on-patch-by:
Alexey Brodkin <Alexey.Brodkin@synopsys.com>
-
- Jun 25, 2020
-
-
Guillem Jover authored
While the terms whitelist and blacklist do not have an etymology with racial connotations, they still attribute positive and negative connotations to these colors for terms that are not explicitly descriptive of what they mean. We can use instead terms that are more descriptive, and have no negative connotations. Explicitly spell out that this is about internal symbols, and whether we allow them to appear in symbol files. Even though there do not appear to be users for the old directives in Debian, we will still do an ordered transition with deprecation warnings in case private and/or third-party users are affected.
-
- Jan 15, 2019
-
-
Guillem Jover authored
Running code in the module scope means that anything importing the module will execute that code, which is undesirable. Move the initialization into a _select_objdump() sub, which gets assigned into a state variable on demand.
-
Guillem Jover authored
The spawn() call was removed but not the matching import. Fixes: commit 8ae966ae
-
- Jul 24, 2018
-
-
Guillem Jover authored
The usage in this file is correct, but we are still doing boolean evaluation.
-
Guillem Jover authored
We should always assign a proper Dpkg::Version object to the deprecated variable. Otherwise it can get confused with the scalar value 0 used on boolean context to denote it is *not* deprecated, instead of it being a version number 0.
-
- May 04, 2018
-
-
Guillem Jover authored
An ELF executable is defined by whether the object has the EXEC_P flag defined or an interpreter in the program header. The former applies to statically linked programs, the latter to dynamically linked programs and possibly some shared libraries that can be executed, such as the ones provided by glibc. This is now more relevant as PIE makes normal executables show up as shared objects, so they do not contain the EXEC_P flag, and were not being detected as executables.
-
Guillem Jover authored
-
- Jan 16, 2018
-
-
Dmitry Shachnev authored
Fixes: commit 0d2b3cee Closes: #880166 Signed-off-by:
Guillem Jover <guillem@debian.org>
-
- Oct 12, 2017
-
-
Guillem Jover authored
-
- Sep 24, 2017
-
-
Guillem Jover authored
-
Guillem Jover authored
Addresses: Subroutines::ProhibitManyArgs Warned-by: perlcritic
-
- Aug 26, 2017
-
-
Guillem Jover authored
-
- May 20, 2017
-
-
Guillem Jover authored
Our current minimal Perl version contains a new enough List::Util module implementing none and any, and several other functions.
-
- May 06, 2017
-
-
Josh Soref authored
Signed-off-by:
Guillem Jover <guillem@debian.org>
-
- Feb 26, 2017
-
-
Guillem Jover authored
If the ELF class or endianness are unknown or bogus, ignore the file. Reported-by:
Niels Thykier <niels@thykier.net>
-
Guillem Jover authored
Emit an explicit warning whenever we cannot detect the format for an executable object, instead of delegating this to the subsequent objdump, and letting it die, which ca be canfusing and is not future-proof. Closes: #854536
-
Guillem Jover authored
The rest of the code handles non-binary files (ELF in this case) gracefully and ignores them, even though not very explicitly, as objdump will emit a warning that might be difficult to decrypt. We will still fail for other read failures that are not just short-reads, as those imply some actual problem with the passed files. Closes: #854536
-
Guillem Jover authored
The affected code in NetBSD was bogus, and has been removed now. So there is no point in trying to special case the EM_SPARC32PLUS ELF machine ID depending on the ELF class, for something that should never happen. Ref: https//gnats.netbsd.org/51925
-
- Feb 01, 2017
-
-
Guillem Jover authored
These are too unreliable for exact matches. There are objects with EABIv4 in the wild, even when the current is EABIv5. The soft and hard float flags are not always set on armel and armhf respectively, although the Tag_ABI_VFP_args attribute in the the ARM attribute section should always be present on armhf. And there are cases were both soft and hard float flags are set at the same time(!). Mask all flags on ARM, so that we get back to the previous behavior with objdump. We can try to revisit this for a better matching during the dpkg 1.19.x cycle. Closes: #853793
-
- Jan 29, 2017
-
-
Guillem Jover authored
Some ELF binaries contain alternative or old ELF machine types, which should match with their canonical forms. Map those before encoding the ABI. We ignore some mappings for things that should certainly never appear in current systems. Of note are EM_PPC_OLD (17) that conflicts with EM_VPP550 (17), and EM_PJ_OLD (99) that conflicts with EM_SNP1K (99). Warned-by: rebootstrap
-
- Jan 28, 2017
-
-
Guillem Jover authored
This way when unpacking for output, the result gives meaningful results.
-
Guillem Jover authored
These do not define the ABI, and seem to be set depending on the ISA used. Mask them for now, and postpone possibly making more fine-grained matching in the future.
-
- Jan 26, 2017
-
-
Guillem Jover authored
The previous ELF ABI mismatch detector was very naïve, as the string returned by «objdump -a» is a very simplistic representation of the ELF ABI used. Switch to our own ELF header parser, so that we can distinguish based on the fields that define the object ABI. This is still not enough, and we will have collisions with things such as linux-i386 and hurd-i386, but most of the previously colliding objects are now filtered. This also makes us independent of objdump not supporting any unknown ELF object ABI. Closes: #849913
-
- Sep 14, 2015
-
-
Guillem Jover authored
This should make the regular expressions easier to read and understand, and allows to add comments describing specific parts. Addresses RegularExpressions::RequireExtendedFormatting. Warned-by: perlcritic
-
- Aug 02, 2015
-
-
Guillem Jover authored
The ELF spec does not disallow symbols with embedded spaces, so we should really be supporting those. This is required by Go shared libraries. Closes: #785344 Based-on-patch-by:
Michael Hudson-Doyle <michael.hudson@canonical.com> Signed-off-by:
Guillem Jover <guillem@debian.org>
-
- May 30, 2015
-
-
Guillem Jover authored
-
Guillem Jover authored
These markers get instantiated when generating the output files, replacing them when generating a template is wrong.
-
Guillem Jover authored
This moves the variables closer to the block they are being used in. And protects them from external access.
-
Guillem Jover authored
-
- Apr 18, 2015
-
-
Guillem Jover authored
-
- Apr 10, 2015
-
-
Guillem Jover authored
-
- Mar 30, 2015
-
-
Guillem Jover authored
Place 'use' strict and warnings first, then Exporter 'our' declarations, then Test module imports, then system module imports, then Dpkg module imports, then 'use' parent and overload pragmas, separated by a blank line for each block. Split each exported symbol declaration into its own line to ease modifications.
-
- Jan 28, 2015
-
-
Guillem Jover authored
-
Guillem Jover authored
The old function name was inconsistent with the other gettext family of short aliases which has already caused some code typos, and functions starting with underscore are considered by convention private in Perl.
-
Guillem Jover authored
These allow to tag symbols as being only relevant on architectures with specific bits or endianness. The current supported values are 32 and 64 for arch-bits, and little and big for arch-endian. They can also be combined by using multiple tags on the same symbol. Closes: #630342
-
Guillem Jover authored
Stop abusing the Dpkg::Deps object just to get the architecture computation from it.
-
- Oct 06, 2014
-
-
Guillem Jover authored
Addresses Subroutines::RequireArgUnpacking. Warned-by: perlcritic
-
Guillem Jover authored
Addresses Subroutines::RequireArgUnpacking. Warned-by: perlcritic
-
- Oct 05, 2014
-
-
Guillem Jover authored
Fixes BuiltinFunctions::ProhibitUselessTopic and RegularExpressions::ProhibitUselessTopic. Warned-by: perlcritic
-