Binutils LD

Name: Binutils LD
Tool Provider:

GNU

Supported Standards: ISO26262
Description:

GNU linker from Binutils

ld combines a number of object and archive files, relocates their data and ties up symbol references.

Use Cases:
Description:

Version 2.31 of Binutils LD

Version 2.31 of the Binutils ld

The documentation of the version can be found here:

https://sourceware.org/binutils/docs-2.31/ld/index.html

Configuration:

ld is called by compiler driver

Environment:

Host Environment: Ubuntu 18.04 LTS

Target Environment: Ubuntu 18.04 LTS

Safety-Impact: yes
Inputs:
  • Object Code:

    Object Code

Outputs:
  • Binary Code:

    Binary Code

Features:
  • Container Feature Known Bug tests:

    The bugtracker of binutils was analyzed in order to identify potentially relevant known bugs for the qualification.

  • Linker Core Functionality: 1_Input option consistency:

    All command-line options of ld create meaningful context for the linker.

  • Linker Core Functionality: 2_File Reading:

    All input object files and archives are correctly read and analyzed by ld.

  • Linker Core Functionality: 3_Outputs:

    The output file is correctly generated.

  • lnamespec:

    With this option, ld searchs the library path for a file with that name

  • rpath=NAME:

    Add a directory to the runtime library search path.

  • z defs:

    Reports unresolved symbol references from regular object files.

Potential errors:
# Error Safety-Impact Mitigations for detections/avoidance Final detection/avoidance probability
1 [Container Feature Known Bug tests] Potential error related to Known Bugs

This potential error is tested by Test Cases designed on the basis of the current relevant known bugs

impact_true HIGH
2 [Linker Core Functionality: 1_Input option consistency] Input option is wrong

Input option is not consistent or the syntax is not as specified.

impact_true HIGH
3 [Linker Core Functionality: 2_File Reading] Input object file is wrong

The input object file is not generated or is generated in the wrong format.

impact_true HIGH
4 [Linker Core Functionality: 3_Outputs] Output file is wrong

Output file is not generated at the correct location, is incomplete/incorrect or is missing.

impact_true HIGH
5 [lnamespec] Linker does not behave as expected for the namespec library

The dynamic linker does not look for the namespec library.

impact_true HIGH
6 [rpath=NAME] Linker does not behave as expected for rpath

The dynamic linker does not search in the path included in the generated output file in the correct order.

impact_true HIGH
7 [z defs] Linker does not behave as expected for z defs

ld does not stop linking and produces an output file although there are unresolved symbol references from regular object files

impact_true HIGH
Description:

The QKit is a standard Validas QKit using QST and TAU that automatically executes the qualification tests in the user environment.

This Qkit is for the tool Binutils LD and one use case is considered: Link Binary.

Details on the planning and tests are removed for confidentiality reasons.

Qualfication method:

VALIDAS_QKIT

Responsible

Available from Validas

Identifications:
Use Cases:
Description:

This testsuite contains tests for use case described in the model

Flags: Has Requirements Based Tests , Has Negative Tests , Has Boundary Tests , Has Equivalence Tests , Has Error Guessing Tests
# tests: 514
Errors:
  • Input object file is wrong
  • Linker does not behave as expected for rpath
  • Linker does not behave as expected for the namespec library
  • Linker does not behave as expected for z defs
  • Output file is wrong
  • Potential error related to Known Bugs
# Mitigation Detection/Avoidance probability Detected/Avoided errors
1 [Restriction] Linker option should be specified correctly

Ensure that if you use a linker option, it is specified correctly

HIGH
  • Input option is wrong