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

Update linux-arm.pubxml to build arm ELF in 64bit #72

Merged
merged 3 commits into from
Nov 6, 2024

Conversation

cjgarson
Copy link
Contributor

@cjgarson cjgarson commented Nov 6, 2024

The linux-arm PublishProfile is currently set to the linux-arm RuntimeIdentifier. This is actually building the project as an ARM 32-bit executable.

$ file Obj2Tiles
Obj2Tiles: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-armhf.so.3, for GNU/Linux 3.2.0, BuildID[sha1]=6342b62859db55e3ca6a7d3455920367c10df379, not stripped

When using this in the ODM or NodeODM container, the container has no libraries to run 32-bit ARM executables and, thus, the file does not run. Bash indicates that the file cannot be found, because the libraries to run it are not present.

As such, the LinuxArm release ZIP file containing the Obj2Tiles binary from the repo release page at https://github.com/OpenDroneMap/Obj2Tiles/releases simply does not work in the NodeODM or ODM container when using Arm64.

After changing the PublishProfile to linux-arm64 and publishing the project, the resulting binary works correctly.

$ file Obj2Tiles
Obj2Tiles: ELF 64-bit LSB pie executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=4b9956564c7a31b82fd68ef80b9474822506f274, stripped

@HeDo88TH
Copy link
Collaborator

HeDo88TH commented Nov 6, 2024

Nice catch, I will move the release tag

@HeDo88TH HeDo88TH merged commit 359d1df into OpenDroneMap:master Nov 6, 2024
1 check passed
@cjgarson
Copy link
Contributor Author

cjgarson commented Nov 6, 2024

@HeDo88TH Changing the release ZIP filename to LinuxArm64 will cause issues with ODM Cmake.

See this file: https://github.com/OpenDroneMap/ODM/blob/master/SuperBuild/cmake/External-Obj2Tiles.cmake

@HeDo88TH
Copy link
Collaborator

HeDo88TH commented Nov 6, 2024

OpenDroneMap/ODM#1811

@cjgarson cjgarson deleted the patch-1 branch November 6, 2024 17:05
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 this pull request may close these issues.

2 participants