ros-tooling / cross_compile

A tool to build ROS and ROS2 workspaces for various targets
Apache License 2.0
187 stars 59 forks source link

What is the purpose of exporting all of sysroot? #367

Open Makekihe opened 1 year ago

Makekihe commented 1 year ago

I'm trying to modify this repo, so that I can use it for true cross compilation, as an alternative to the QEmu emulator. I'm doing it based on the work on the emersonknapp/cross-compile branch, where there is some work-in-progress. I've stumbled upon something which I don't really understand on the branch, and I'm hoping for some clarification.

What is the purpose of exporting all of the sysroot? Where is this used at a later stage?

The exploring using fs.extractall() takes +1 hour for me to do of my docker file (~70k files, 2.4 GB), so I'm interested in doing this more effectively. Do you have any idea why this takes so long, and if any alternative could speed up the process?

Branch: emersonknapp/cross-compile branch File: sysroot_creator.py Code: """ logger.info('Successfully created sysroot docker image: %s', image_tag) logger.info('Exporting sysroot') fs = docker_client.export_image_filesystem(image_tag) logger.info('Extracting sysroot to destination') try: shutil.rmtree(str(sysroot_destination)) except FileNotFoundError: pass fs.extractall(sysroot_destination) fs.close() """