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

[ARM32/Linux] libcoreclrtraceptprovider.so build #7152

Closed
hseok-oh opened this issue Dec 20, 2016 · 6 comments
Closed

[ARM32/Linux] libcoreclrtraceptprovider.so build #7152

hseok-oh opened this issue Dec 20, 2016 · 6 comments
Assignees
Labels
arch-arm32 os-linux Linux OS (any supported distro)
Milestone

Comments

@hseok-oh
Copy link
Contributor

If we enable building libcoreclrtraceptprovider.so by setting FEATURE_EVENT_TRACE to 1 (dotnet/coreclr#8421 (comment)), the build fail with these error messages

/nfs/rbp3/coreclr/cross/rootfs/arm/usr/include/urcu/uatomic/generic.h:75:10: error: address argument to atomic builtin must be a pointer to integer or pointer ('void *' invalid)
                return __sync_val_compare_and_swap_4(addr, old, _new);
                       ^                             ~~~~
/nfs/rbp3/coreclr/cross/rootfs/arm/usr/include/urcu/uatomic/generic.h:112:3: error: address argument to atomic builtin must be a pointer to integer or pointer ('void *' invalid)
                __sync_and_and_fetch_4(addr, val);
                ^                      ~~~~
/nfs/rbp3/coreclr/cross/rootfs/arm/usr/include/urcu/uatomic/generic.h:151:3: error: address argument to atomic builtin must be a pointer to integer or pointer ('void *' invalid)
                __sync_or_and_fetch_4(addr, val);
                ^                     ~~~~
/nfs/rbp3/coreclr/cross/rootfs/arm/usr/include/urcu/uatomic/generic.h:190:10: error: address argument to atomic builtin must be a pointer to integer or pointer ('void *' invalid)
                return __sync_add_and_fetch_4(addr, val);
                       ^                      ~~~~

We can reproduce this error message by using clang version >= 3.6 and ubuntu 14.04. In other words, we can avoid this fail by using clang < 3.5 or upper version of ubuntu 14.04. (ex. 16.04). But our default build environment for ARM32/Linux is clang-3.6 and ubuntu 14.04.

@hseok-oh hseok-oh changed the title [ARM32/Linux] Enable libcoreclrtraceptprovider.so build [ARM32/Linux] libcoreclrtraceptprovider.so build Dec 20, 2016
@janvorli
Copy link
Member

@hseok-oh if I remember it correctly, there were some problems with pre-3.5 clang, that's why the 3.5 is the minimal supported version.

@hseok-oh
Copy link
Contributor Author

@gkhanna79 It seems better to using patch file in build-rootfs.sh script for ubuntu 14.04 rootfs such that tizen does. The script for Tizen rootfs uses https://github.com/dotnet/coreclr/blob/master/cross/armel/tizen/tizen.patch in https://github.com/dotnet/coreclr/blob/master/cross/armel/tizen-build-rootfs.sh.

@gkhanna79
Copy link
Member

@hseok-oh I am not sure I follow - are you suggesting to use Tizen rootfs for Ubuntu 14.04 Armhf build?

@hseok-oh
Copy link
Contributor Author

@gkhanna79 No. My suggestion is to use additional patch that fix bug in cross/rootfs/arm/usr/include/urcu/uatomic/generic.h after build ubuntu armhf 14.04 rootfs. And this patch is for 14.04 armhf rootfs only.

@hseok-oh
Copy link
Contributor Author

I made patch file and fixed build-rootfs.sh. My changes are in https://github.com/hseok-oh/coreclr/tree/fix_8684. I've cancel PR because we need to update CI setting for ARM first.

@gkhanna79
Copy link
Member

Sounds good @hseok-oh. Please let me know when you are ready to integrate the change in.

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the Future milestone Jan 31, 2020
@ghost ghost locked as resolved and limited conversation to collaborators Dec 26, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
arch-arm32 os-linux Linux OS (any supported distro)
Projects
None yet
Development

No branches or pull requests

4 participants