Skip to content

Disable dyninstAPI/static_ctor_dtor on aarch64 - #42

Merged
hainest merged 3 commits into
masterfrom
thaines/disable_arm_static
Oct 13, 2026
Merged

hainest merged 3 commits into
masterfrom
thaines/disable_arm_static

Conversation

@hainest

@hainest hainest commented Oct 12, 2026

Copy link
Copy Markdown
Contributor

Static rewriting isn't supported on aarch64.

Static rewriting isn't supported on aarch64.
@hainest hainest self-assigned this Oct 12, 2026
@hainest

hainest commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

@kupsch It was failing because rewriting statically-linked binaries isn't supported on aarch64.

@hainest

hainest commented Oct 12, 2026

Copy link
Copy Markdown
Contributor Author

Working correctly on grace-hopper and grace machines at UO.

@kupsch kupsch left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good. Two optional things:

  1. It would be nice have the test use SKIPPED with a message instead of silently be not run so it is visible. That's what I did in on the branch kupsch/filter-DSOs-to-parse.

  2. Also the AI suggests: The cleaner fix is to make DYNINST_ENABLE_STATIC_TESTS default to OFF when the target is aarch64. That keeps one control point users can override, and it also covers any future static tests added in other directories. I'd also used skipped in this case too.

@hainest

hainest commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

Looks good. Two optional things:

1. It would be nice have the test use SKIPPED with a message instead of silently be not run so it is visible.  That's what I did in on the branch kupsch/filter-DSOs-to-parse.

Yeah, that would be nicer behavior. I'll convert it to a runtime check in the mutator and add an error message that will show up with ctest --verbose.

2. Also the AI suggests: `The cleaner fix is to make DYNINST_ENABLE_STATIC_TESTS default to OFF when the target is aarch64. That keeps one control point users can override, and it also covers any future static tests added in other directories.` I'd also used skipped in this case too.

That controls just this test today, but there could be others in the future that don't try to rewrite the binary. I think having each test determine what it should do is the best route for now.

@hainest

hainest commented Oct 13, 2026

Copy link
Copy Markdown
Contributor Author

@kupsch I marked it as disabled instead of skipped.

Test project /home/users/thaines/workspace/hopper/paradyn/build/external-tests
    Start 1: common_includes
1/7 Test #1: common_includes ..................   Passed    0.01 sec
    Start 2: dynC_API_includes
2/7 Test #2: dynC_API_includes ................   Passed    0.02 sec
    Start 3: dyninstAPI_static_ctor_dtor
3/7 Test #3: dyninstAPI_static_ctor_dtor ......***Not Run (Disabled)   0.00 sec
    Start 4: parseAPI_simpleParser
4/7 Test #4: parseAPI_simpleParser ............   Passed    0.03 sec
    Start 5: symtab_includes
5/7 Test #5: symtab_includes ..................   Passed    0.04 sec
    Start 6: e_parser
6/7 Test #6: e_parser .........................   Passed    0.01 sec
    Start 7: module_parser
7/7 Test #7: module_parser ....................   Passed    0.02 sec

100% tests passed, 0 tests failed out of 6

Total Test time (real) =   0.14 sec

The following tests did not run:
          3 - dyninstAPI_static_ctor_dtor (Disabled)

@hainest
hainest merged commit c33e6af into master Oct 13, 2026
2 checks passed
@hainest
hainest deleted the thaines/disable_arm_static branch October 13, 2026 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants