- 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>
-
- 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
-
- 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
-
- 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
This moves the variables closer to the block they are being used in. And protects them from external access.
-
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.
-
- Oct 05, 2014
-
-
Guillem Jover authored
Fixes BuiltinFunctions::ProhibitUselessTopic and RegularExpressions::ProhibitUselessTopic. Warned-by: perlcritic
-
- Aug 19, 2014
-
-
Guillem Jover authored
This reverts some of the unsafe assignments, as the variable might have contained a value evaluating to false, and we are assigning non-false values. This specifically fixes dpkg-source --commit and -b not working any longer. Regression introduced in commit b0337f00. Closes: #758426 Reported-by:
Neil Williams <codehelp@debian.org>
-
- Aug 09, 2014
-
-
Guillem Jover authored
Replace only safe usages, i.e. those that fallback on initialization values that evaluate to false anyway. Or when the API is explicit about the variable being undefined.
-
Guillem Jover authored
Replace only safe usages, i.e. those that fallback on initialization values that evaluate to false anyway. Or when the API is explicit about the variable being undefined.
-
- May 17, 2014
-
-
Guillem Jover authored
These are false positives, as when there's no match perl will leave the subpattern variables untouched. We'll just use the opportunity to unconfuse perlcritic, making some of those variable usages more clear by using intermediate variables. Fixes RegularExpressions::ProhibitUnusedCapture. Warned-by: perlcritic
-
- Apr 21, 2014
-
-
Guillem Jover authored
-
Guillem Jover authored
This way we make sure we don't affect the $_ value for the caller, in case it was being used.
-
- Dec 07, 2013
-
-
Guillem Jover authored
-
- Dec 04, 2013
-
-
Guillem Jover authored
This will make it safe to remove parenthesis around builtins.
-
- Sep 19, 2013
-
-
Guillem Jover authored
-
- Jul 21, 2013
-
-
Guillem Jover authored
This gets rid of the localized $OBJDUMP variable, by explicitly passing the overriden value to the recursive call. Fixes Variables::ProhibitLocalVars.
-
- May 04, 2013
-
-
Guillem Jover authored
Using double-quotes imposes a small performance penalty as the perl parser needs to check if any interpolation is needed. Use double-quotes only when the string contains single-quotes. Ideally we'd use double-quotes too for escaped meta-characters that might otherwise be confusing to immediately see if they need interpolation or not, but the policy does not (currently) allow to ignore these. Fixes ValuesAndExpressions::ProhibitInterpolationOfLiterals. Warned-by: perlcritic
-
- Apr 30, 2013
-
-
Guillem Jover authored
Addresses ValuesAndExpressions::ProhibitInterpolationOfLiterals. Warned-by: perlcritic
-
Guillem Jover authored
Do not quote the keys for any hash which will always use simple identifiers, as that is taken care of by the => operator. So this does not apply to overload pragmas, version operators, field names, substvars, command line options or filenames. Addresses ValuesAndExpressions::ProhibitInterpolationOfLiterals. Warned-by: perlcritic
-
- Apr 27, 2013
-
-
Guillem Jover authored
Fixes InputOutput::ProhibitBarewordFileHandles. Warned-by: perlcritic
-
- Apr 19, 2013
-
-
Guillem Jover authored
This makes sure the functions always return the appropriate value independent of the context. Fixes Subroutines::ProhibitExplicitReturnUndef. Warned-by: perlcritic
-
- Aug 11, 2010
-
-
Raphaël Hertzog authored
In many cases the cross objdump is not able to analyze the binaries from the build host and yet dpkg-shlibdeps need to be able to verify that the various binaries use the same ELF format. To achieve this get_format() is enhanced to fallback on the objdump command when the cross one failed.
-
- May 21, 2010
-
-
Raphaël Hertzog authored
When <cross-prefix>-objdump is available and when we're cross-compiling let's use the cross objdump in preference over the standard objdump. Based-on-patch-by:
Loïc Minier <lool@debian.org>
-
- Feb 20, 2010
-
-
Raphaël Hertzog authored
Modules whose API should be stable have a version 1.00. The modules with version 0.01 are expected to have further API changes in the (near) future or are deemed to be useful mostly for dpkg-dev's internal usage.
-