-
Notifications
You must be signed in to change notification settings - Fork 255
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
tool chain update for 23.05 release #4827
Comments
My issue4827 branch [1] contains a first version of the update with binutils 2.40 and gcc 12.2.0. TODO:
I'm going to create separate issues for the new errors which occurred so far when I tried to build Genode with the updated tools. |
That's just fantastic! @cproc, you made my day. |
I just merged all compilation fixes to staging in preparation. |
I tried to build the tool chain via
Info about the Linux installation
|
@chelmuth: can you execute binaries from |
The following succeeds, or did I get you wrong?
|
Is the following correct or does it confirm your suspicion? Do you need more info?
|
In my Xubuntu 20.04 test VM it says
The
|
|
Could it be I have an incomplete/inconsistent state as I started with |
That could be the reason. There is currently only a make dependency on the existence of |
I deleted /var/tmp/build-23.05/bootstrap and built from scratch without errors. Hooray 🥳 |
ld: warning: hypervisor has a LOAD segment with RWX permissions Issue #4827
Dynamically linked functions can not be called directly with jump ("j", "jal") and friends. Calls must go through the PLT. issue #4827
Eliminate the creation of 'Genode::String's before the linker has been self relocated, because 'Genode::String's will call 'Genode::strlen' on construction from C-Strings, which has now become a GOT relative call, while the GOT contains only zeros before relocation -> page fault at IP 0. fixes #4867 related to #4827
/data/genode/repos/os/src/server/lx_fs/directory.h: In member function ‘virtual Genode::size_t Lx_fs::Directory::read(char*, Genode::size_t, File_system::seek_off_t)’: /data/genode/repos/os/src/server/lx_fs/directory.h:224:53: error: ‘dent’ may be used uninitialized [-Werror=maybe-uninitialized] 224 | .type = type(dent->d_type), | ~~~~~~^~~~~~ /data/genode/repos/os/src/server/lx_fs/directory.h:197:40: note: ‘dent’ was declared here 197 | struct dirent *dent; | ^~~~ Issue #4827
Either enable strict-alignment or disable FPU code generation by gcc regarding bootstrap code, which cannot handle alignment faults during initialization properly. Ref #4827
In our binaries, the .note.GNU-stack section is missing, which is okay as we do not interpret these sections anyway and map stack pages non-executable per default. Issue #4827
Fixed in master. |
Enable strict-alignment to compile bootstrap code, which cannot handle alignment faults during initialization properly. Ref genodelabs/genode#4827
Since genodelabs/genode#4827, the linker may resolve it's `-lc` argument to the shared `libc.lib.so` library. To make sure that the versioned symbols are statically linked to the binary, put them in `libutil.a`, as `libutil.lib.so` is not a commonly used library name on Genode. Ref: genodelabs#63
Since genodelabs/genode#4827, the linker may resolve it's `-lc` argument to the shared `libc.lib.so` library. To make sure that the versioned symbols are statically linked to the binary, put them in `libutil.a`, as `libutil.lib.so` is not a commonly used library name on Genode. Ref: #63
Since genodelabs/genode#4827, the linker may resolve it's `-lc` argument to the shared `libc.lib.so` library. To make sure that the versioned symbols are statically linked to the binary, put them in `libutil.a`, as `libutil.lib.so` is not a commonly used library name on Genode. Ref: #63
No description provided.
The text was updated successfully, but these errors were encountered: