Skip to content

[build] Remove hsimple tutorial from main CMake build #15930

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

Closed

Conversation

vepadulano
Copy link
Member

The main motivation is because it is a clear blocker for proper cross-compilation. Also, the tutorial itself is already run as the first tutorial irrespective of the build configuration so the test is actually repeated.

The main motivation is because it is a clear blocker for proper
cross-compilation. Also, the tutorial itself is already run as the first
tutorial irrespective of the build configuration so the test is actually
repeated.
@vepadulano vepadulano requested a review from dpiparo June 25, 2024 15:50
@vepadulano vepadulano self-assigned this Jun 25, 2024
@vepadulano vepadulano requested a review from bellenot as a code owner June 25, 2024 15:50
ferdymercury added a commit to jolly-chen/root that referenced this pull request Jun 25, 2024
Copy link

github-actions bot commented Jun 25, 2024

Test Results

    13 files      13 suites   2d 15h 37m 31s ⏱️
 2 651 tests  2 105 ✅ 0 💤   546 ❌
32 645 runs  31 561 ✅ 0 💤 1 084 ❌

For more details on these failures, see this check.

Results for commit 4fa46b1.

♻️ This comment has been updated with latest results.

@dpiparo dpiparo closed this Jun 26, 2024
@dpiparo dpiparo reopened this Jun 26, 2024
The file is created anew with compression setting 209 (LZMA level 9) in order to
minimise the size footprint on the repository (384Kb). This way tutorials that
require the presence of the file can just take it from the local directory
without the need for dependency on another tutorial.
@hahnjo
Copy link
Member

hahnjo commented Jul 3, 2024

cross-compilation is blocked by the creation of modules.idx anyway, which significantly reduces the argument for removing the hsimple tutorial IMHO...

@vepadulano
Copy link
Member Author

vepadulano commented Jul 3, 2024

It's still one less patch needed for the conda packaging. Clearly there's a bigger rock to move, but this smaller one could be moved anyway perhaps?

@hahnjo
Copy link
Member

hahnjo commented Jul 3, 2024

But how do you solve the modules.idx creation, can you link to a patch? AFAICT from https://github.com/conda-forge/root-feedstock/pull/226/files, there is qemu in place for that, so that should also take care of hsimple, no?

@vepadulano
Copy link
Member Author

But how do you solve the modules.idx creation, can you link to a patch?

The build is actually cross-compiling as requested in the conda-forge.yml file (e.g. here). Then the conda forge CI is able to automatically detect that an executable e.g. rootcling_stage1 that is being invoked during the build was built for a different target platform than the build one. In such cases, it runs that executable via qemu (which in turn is enabled by binfmt_misc). There's some hint of it in the CI files such as https://github.com/conda-forge/root-feedstock/blob/1987df5fb087fb149f114dab14f6dd5f99e3156d/.azure-pipelines/azure-pipelines-linux.yml#L90-L96 (these are generated automatically by conda-forge)

This does not explain alone the fact that there is also a patch to disable hsimple.root generation in the conda forge ROOT feedstock. At some point in the past that was generating some other problem at build time (unclear whether that was only fault of ROOT or also a bug in qemu itself, see this bug report), so that patch was added.

IMHO clearly the better approach is to have less patches and walk towards a fully cross-compilable ROOT build, albeit this PR might be just a very small step.

@hahnjo
Copy link
Member

hahnjo commented Jul 3, 2024

IMHO clearly the better approach is to have less patches

Sure, so can we just remove the patch from the conda forge and see what happens? It's still not clear to me why it is needed.

walk towards a fully cross-compilable ROOT build, albeit this PR might be just a very small step.

I agree, but I don't see the bigger picture here: how do you want to achieve this with all of rootcling for dictionary and module generation? Personally I don't see a value of starting at the easy leaves with no clear plan how to actually tackle the hard parts.

@vepadulano
Copy link
Member Author

I agree we should wait for a more robust solution for cross-compilation of the whole project before removing this simple test. I will close this PR and if in the future we decide what to do we can resume from here 👍

@vepadulano vepadulano closed this Jul 15, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
clean build Ask CI to do non-incremental build on PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants