diff --git a/ros_cross_compile/qemu/qemu-aarch64-static b/ros_cross_compile/qemu/qemu-aarch64-static new file mode 100755 index 00000000..55deaff5 Binary files /dev/null and b/ros_cross_compile/qemu/qemu-aarch64-static differ diff --git a/ros_cross_compile/qemu/qemu-arm-static b/ros_cross_compile/qemu/qemu-arm-static new file mode 100755 index 00000000..3e3fee7a Binary files /dev/null and b/ros_cross_compile/qemu/qemu-arm-static differ diff --git a/ros_cross_compile/sysroot_creator.py b/ros_cross_compile/sysroot_creator.py index 32aa5310..e4a0c924 100755 --- a/ros_cross_compile/sysroot_creator.py +++ b/ros_cross_compile/sysroot_creator.py @@ -64,7 +64,13 @@ def setup_emulator(arch: str, output_dir: Path) -> None: bin_dir.mkdir(parents=True, exist_ok=True) needs_emulator = (py_platform.system() != 'Darwin') and (py_platform.machine() != arch) if needs_emulator: - emulator_path = Path('/') / 'usr' / 'bin' / emulator_name + """ + Using the same qemu binaries as the ones provided in + https://github.com/osrf/multiarch-docker-image-generation in order to + work around https://bugs.launchpad.net/qemu/+bug/1805913 and so qemu + supports renameat2() syscall. + """ + emulator_path = Path(__file__).parent / 'qemu' / emulator_name if not emulator_path.is_file(): raise RuntimeError('Could not find the expected QEmu emulator binary "{}"'.format( emulator_path)) diff --git a/setup.py b/setup.py index 148cc92d..70371a66 100644 --- a/setup.py +++ b/setup.py @@ -41,6 +41,7 @@ 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'Topic :: Software Development', ], description='A tool to build ROS workspaces for various target architectures and platforms.', @@ -48,7 +49,7 @@ long_description_content_type='text/markdown', license='Apache License, Version 2.0', package_data={ - package_name: ['docker/*.*', 'mixins/*.*'], + package_name: ['docker/*.*', 'mixins/*.*', 'qemu/*.*'], }, install_requires=[ 'docker>=2,<3',