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

Harmonize symlinks structure between platforms #118

Closed
h-vetinari opened this issue Dec 12, 2023 · 4 comments · Fixed by conda-forge/ctng-compiler-activation-feedstock#110

Comments

@h-vetinari
Copy link
Member

h-vetinari commented Dec 12, 2023

In #113, we needed to make some modifications to account for conda-forge/clangdev-feedstock#251, which placed some symlinks that used to be done in this feedstock into another output (for good reason). Now however we have a situation where these things are not consistent between versions (kinda OK, eventually the old ones drop off), and more importantly, between platforms.

There was some discussion about how to deal with it, and we agreed that things should be harmonized if possible. I came up with the following table:

output linux-* osx-*
gcc_impl_
$target_platform
bin/x86_64-conda-linux-gnu-cc...
bin/x86_64-conda_cos6-linux-gnu-cc...
-
gcc_
$target_platform
.../activate-gcc_linux-64.sh
.../deactivate-gcc_linux-64.sh
-
gcc bin/gcc -
clang_impl_
$target_platform
- bin/x86_64-apple-darwin13.4.0-clang
or
bin/arm64-apple-darwin20.0.0-clang
clang_
$target_platform
- .../activate_clang_osx-64.sh
.../deactivate_clang_osx-64.sh
clang bin/clang
bin/x86_64-conda-linux-gnu-clang
bin/clang

I noted:

Perhaps the cleaner approach [than having bin/x86_64-conda-linux-gnu-clang in clang] would be to create an activation feedstock for clang on linux (or do it in this one?) and then have bin/x86_64-conda-linux-gnu-clang be under clang_impl_linux-64?

In that way, this issue is quite closely related to #117.

Summarizing how a potential future setup might look like:

output linux-* osx-*
gcc_impl_
$target_platform
bin/x86_64-conda-linux-gnu-cc...
bin/x86_64-conda_cos6-linux-gnu-cc...
-
gcc_
$target_platform
.../activate-gcc_linux-64.sh
.../deactivate-gcc_linux-64.sh
-
gcc bin/gcc -
clang_impl_
$target_platform
bin/x86_64-conda-linux-gnu-clang bin/x86_64-apple-darwin13.4.0-clang
or
bin/arm64-apple-darwin20.0.0-clang
clang_
$target_platform
.../activate_clang_linux-64.sh
.../deactivate_clang_linux-64.sh
.../activate_clang_osx-64.sh
.../deactivate_clang_osx-64.sh
clang bin/clang bin/clang
This was referenced Dec 12, 2023
@h-vetinari
Copy link
Member Author

h-vetinari commented Mar 5, 2024

One thing that would need to happen to achieve consistency between linux & osx (i.e. have clang contain $PREFIX/bin/clang and the activation) is that we'd have to rename the outputs in clangdev.

For linux we're building (in order of dependence):

For clang, we'd need one more stage I think:

@isuruf
Copy link
Member

isuruf commented Mar 14, 2024

gcc, gxx should go into https://github.com/conda-forge/ctng-compilers-feedstock and that's it. There's no other change necessary IMO.

@h-vetinari
Copy link
Member Author

gcc, gxx should go into https://github.com/conda-forge/ctng-compilers-feedstock and that's it.

IIUC, you're suggesting to make gcc be an output without compiler-activation by default? That'd be nice as well, in the sense that the only activated compilers are then the {gcc,gxx,clang,clangxx}_<target> outputs.

@isuruf
Copy link
Member

isuruf commented Mar 15, 2024

IIUC, you're suggesting to make gcc be an output without compiler-activation by default?

gcc does not do activation already.

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 a pull request may close this issue.

2 participants