Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Targets: Use none-elf instead of hermit llvm-target #414

Merged
merged 1 commit into from
Apr 24, 2022

Conversation

mkroening
Copy link
Member

As discussed in hermit-os/hermit-rs#197 (comment), this way the kernel's libhermit.a has OS/ABI: UNIX - System V and the resulting application has OS/ABI: <unknown: ff>. This works for the Rust-toolchain as well as the C-toolchain.

@mkroening mkroening requested a review from stlankes March 27, 2022 13:15
@mkroening mkroening mentioned this pull request Mar 27, 2022
5 tasks
@stlankes
Copy link
Contributor

How do change the OS/ABI in the static library? Or is it not an issue that you link two different object codes with different ABIs to a specific ABI version?

@mkroening
Copy link
Member Author

Okay, I made a mistake in my testing of the C-toolchain. It should still be okay though. To summarize:

  • rusty-hermit: Changing the OS/ABI does not seem to be necessary. It just works.
  • hermit-playground: Changing the OS/ABI is done here.
    Without it, we get these errors:
    [...]
    /opt/hermit/lib/gcc/x86_64-hermit/6.5.0/../../../../x86_64-hermit/bin/ld: /volume/build/local_prefix/opt/hermit/x86_64-hermit/lib/libhermit.a(hermit-5b62641ff76e024f.hermit.45c2875d-cgu.15.rcgu.o): Relocations in generic ELF (EM: 62)
    /opt/hermit/lib/gcc/x86_64-hermit/6.5.0/../../../../x86_64-hermit/bin/ld: /volume/build/local_prefix/opt/hermit/x86_64-hermit/lib/libhermit.a: error adding symbols: file in wrong format
    
    It would probably be easiest to just keep the conversion in that repository though. Using ${CMAKE_ELFEDIT} is easy there, since hermit-playground depends on our GNU toolchain (x86_64-hermit-elfedit) to be available anyway.

Copy link
Contributor

@stlankes stlankes left a comment

Choose a reason for hiding this comment

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

bors r+

bors bot added a commit that referenced this pull request Apr 21, 2022
414: Targets: Use none-elf instead of hermit llvm-target r=stlankes a=mkroening

As discussed in hermit-os/hermit-rs#197 (comment), this way the kernel's `libhermit.a` has `OS/ABI: UNIX - System V` and the resulting application has `OS/ABI: <unknown: ff>`. This works for the Rust-toolchain as well as the C-toolchain.

422: Condvar: Mark sys functions as extern "C" r=stlankes a=mkroening

They are declared in hermit-abi as extern "C" already.
So the current definition without extern "C" is wrong.

424: Clippy: Enable and fix transmute_ptr_to_ptr r=stlankes a=mkroening



Co-authored-by: Martin Kröning <mkroening@posteo.net>
Co-authored-by: Martin Kröning <m.kroening@hotmail.de>
@bors
Copy link
Contributor

bors bot commented Apr 21, 2022

Build failed (retrying...):

bors bot added a commit that referenced this pull request Apr 21, 2022
414: Targets: Use none-elf instead of hermit llvm-target r=stlankes a=mkroening

As discussed in hermit-os/hermit-rs#197 (comment), this way the kernel's `libhermit.a` has `OS/ABI: UNIX - System V` and the resulting application has `OS/ABI: <unknown: ff>`. This works for the Rust-toolchain as well as the C-toolchain.

Co-authored-by: Martin Kröning <mkroening@posteo.net>
@bors
Copy link
Contributor

bors bot commented Apr 21, 2022

Build failed:

@stlankes
Copy link
Contributor

bors retry

bors bot added a commit that referenced this pull request Apr 23, 2022
414: Targets: Use none-elf instead of hermit llvm-target r=stlankes a=mkroening

As discussed in hermit-os/hermit-rs#197 (comment), this way the kernel's `libhermit.a` has `OS/ABI: UNIX - System V` and the resulting application has `OS/ABI: <unknown: ff>`. This works for the Rust-toolchain as well as the C-toolchain.

Co-authored-by: Martin Kröning <mkroening@posteo.net>
@bors
Copy link
Contributor

bors bot commented Apr 23, 2022

Build failed:

@mkroening
Copy link
Member Author

@stlankes, see #427.

@mkroening
Copy link
Member Author

bors retry

@bors
Copy link
Contributor

bors bot commented Apr 24, 2022

@bors bors bot merged commit c37f8ce into hermit-os:master Apr 24, 2022
@mkroening mkroening deleted the llvm-none-elf branch April 24, 2022 13:37
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.

2 participants