-
Notifications
You must be signed in to change notification settings - Fork 14
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
WIP aarch64 sandbox (configurable sandbox+toolchain) #78
Conversation
recipes/libs/expat.yaml
Outdated
@@ -1,14 +1,15 @@ | |||
inherit: [autotools] | |||
|
|||
metaEnvironment: | |||
PKG_VERSION: "2.1.0" | |||
PKG_VERSION: "2.2.10" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
includes the support for aarch64 targets.
dbb3668
to
0a932d3
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As always, I'm more than confused when it comes to this host-toolchain
vs. target-toolchain
stuff. From my perspective it looks good, but I'd like to wait for @jkloetzke's opinion.
@@ -36,6 +36,7 @@ buildScript: | | |||
--with-headers=$2/usr/include \ | |||
--enable-obsolete-rpc \ | |||
--libdir=/usr/lib \ | |||
--disable-werror \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this needed? I'd rather add a patch than disabling werror altogether...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
while cross-compiling for aarch64 i had an error: -Werror=missing-attributes
with --disable-werror
i was able to build it successfully
d6b4807
to
f169705
Compare
i guess this is a bad idea, that i try this xD first i had some easy problems in modules like expat or libcap. than glibc, i searched hours for the patches. but the aarch64-sandbox itself works :) makes it sens to build a |
Actually it is quite simple:
I could imagine that it's possible but it would be good to define precisely what you want to accomplish. If I understand correctly then you want to:
Is this correct?
Depends on you use case where you want to execute Bob. Does the sandbox run on the target? Will it be the same glibc? Or does the toolchain need to run on other Distros too? |
how ever this is not necessary. for me, it works out of the box (with the tool installed on my machine). my use-cases i want to bring into the bob:
that's the point! we need the but the glibc problem is a general one! ALL our linux machines (embedded and pc) are ubuntu 18 lts. the current basement target toolchain is still to new for us. bionic: glibc 2.27; gcc 3.3 to 8; cuda 10.2 (which also supports just gcc until v8) if the sandbox will be cross-compiled like here, what is the correct way? Also cross-compiling the |
if i get this:
while building: than there is an error in the sandbox environment, isn't it? we missed the installation of the headers to /usr/include...
|
I'm looking into it but it will take some time.
I hope gcc 3.3 is a typo. Ubuntu bionic should come with gcc 7.
I think the sandbox cross compiling is correct. The bootstrap-sandbox is just an extra layer to make the real sandbox build reproducible. Therefore it should stay in the native architecture. |
there is a range of installable gcc verions pro ubuntu release. for 18lts there are gcc 4.8 to 8, but indeed not 3.3! default is 7! I pushed my last ideas, that the sandbox provides its information into
no pressure! every help is welcome! :) |
+ LC_ALL=C $READELF -Wr conftest | grep -q 'IRELATIVE\|R_SPARC_JMP_IREL' && { | ||
libc_cv_ld_gnu_indirect_function=yes | ||
} | ||
fi |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have you taken this from https://sourceware.org/pipermail/glibc-cvs/2020q1/000002.html ?
If yes, please add the patch with the original author, commit message and a link to the original source (at least in your commit message) included, otherwise this might infringe copyrights...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for that information, but i guess this patch was not needed, i removed it.
I think the last changes (--with-linker-hash-style=gnu) should have gone to #84 instead, right? |
shit i pushed the merged changes in here... i have to fix this. thanks! |
b6c25d9
to
341de9c
Compare
basement/recipes/devel/compat/gcc.yaml Line 137 in fe037ed
i do not understand. in my opinion this line is not correct. this path will not exists. to which location shall this reference? maybe the same like used in basement/recipes/devel/compat/gcc.yaml Line 155 in fe037ed
|
Even though it looks like an absolute path it will still be implicitly relocated by gcc. I don't have the documentation at hand but if the configured sysroot is below the configured install prefix (which is The sysroot is actually created in the cross-toolchain recipe when the gcc- and libc-target-files are copied into the sysroot at this location. |
fd7690f
to
7742581
Compare
i guess, with the last changes the generic sandbox does work. (aarch64 sandbox) imo the switch from |
uhh. still looks fine for me. i also tested the |
497e066
to
9f785f6
Compare
4f999a0
to
d440a34
Compare
d440a34
to
8e7f419
Compare
8e7f419
to
549193b
Compare
the most problems already fixed. there are just some adaptions left. hopefully we can bring this feature to master soon 😃 |
some important information i will add to the commit message finally: the "generic sandbox" feature is also working with WSL2 (tested with >= Ubuntu 18 LTS)
|
close. follow up here: #154 |
hey guys, i need help! :)
goal is to bring up a configurable sandbox+toolchain.
i want to setup an aarch64 sandbox incl. toolchain.
many stuff is working out of the box, including the aarch64 sandbox, if qemu-aarch64-static is installed.
NOTE: u should use qemu5. older versions have very bad performance! normally u should build it urself. default version of ubuntu18 lts is 2.11... sooooo far behind.
there was nothing special i had to do.
general: x86_64 host system -> cross-compiling am aarch64 sandbox -> than we are on a host-aarch64 system, with which we have to go forward to build the project.
i have done already some fixes to get some module buildable for cross-compiling.
this one is blocking the
TODO
marked stuff: BobBuildTool/bob#399what do u think about this?
br.