pyinstaller / pyinstaller/pyinstaller
unable to build bootloader
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 13.1k
- Forks
- 2k
- Avg merge
- 1d 3h
- Merged PRs (30d)
- 11
Description
Description of the issue
Context information (for bug reports)
-
Output of
pyinstaller --version:(4.5.1) -
Version of Python: Python 3.9.7
-
Platform: OSX -> targeting arm64
-
How you installed Python: brew
-
Did you also try this on another platform? Does it work there? tried in venv, no
-
try the latest development version, using the following command:
pip install https://github.com/pyinstaller/pyinstaller/archive/develop.zip
- follow all the instructions in our "If Things Go Wrong" Guide
(https://github.com/pyinstaller/pyinstaller/wiki/If-Things-Go-Wrong) and
Make sure everything is packaged correctly
- [ x] start with clean installation
- [ x] use the latest development version
- [x ] Run your frozen program from a command window (shell) — instead of double-clicking on it
- Package your program in --onedir mode
- Package without UPX, say: use the option
--noupxor setupx=Falsein your .spec-file - Repackage you application in verbose/debug mode. For this, pass the option
--debugtopyi-makespecorpyinstalleror useEXE(..., debug=1, ...)in your .spec file.
A minimal example program which shows the error
I started by cloning the pyinstaller code, and followed the directions contained within the Dockerfile
(paste text here)
docker run -v "$PWD:/io" -t arm64-full-test
Stacktrace / full error message
(venv) {USER}@{MAC} pyinstaller % sudo docker build --build-arg BASE=dockcross/linux-arm64-full -t arm64-full-test ./bootloader
[+] Building 0.2s (12/12) FINISHED
=> [internal] load build definition from Dockerfile 0.0s
=> => transferring dockerfile: 1.80kB 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
=> [internal] load metadata for docker.io/dockcross/linux-arm64-full:latest 0.0s
=> [1/8] FROM docker.io/dockcross/linux-arm64-full 0.0s
=> CACHED [2/8] WORKDIR /home/ 0.0s
=> CACHED [3/8] RUN curl -s https://zlib.net/zlib-1.2.11.tar.gz | tar xfz - 0.0s
=> CACHED [4/8] WORKDIR zlib-1.2.11 0.0s
=> CACHED [5/8] RUN ./configure --prefix="$(/buildroot/bin/aarch64-buildroot-linux-gnu-gcc -print-sysroot)" 0.0s
=> CACHED [6/8] RUN make 0.0s
=> CACHED [7/8] RUN make install 0.0s
=> CACHED [8/8] WORKDIR /io 0.0s
=> exporting to image 0.0s
=> => exporting layers 0.0s
=> => writing image sha256:32f9198c79ea3f9372e696b660f4011257ffa9b8b52ee2fd98771b87251c0a1b 0.0s
=> => naming to docker.io/library/arm64-full-test 0.0s
Use 'docker scan' to run Snyk tests against images to find vulnerabilities and learn how to fix them
(venv) {USER}@{MAC} pyinstaller % docker run -v "$PWD:/io" -t arm64-full-test
'all' finished successfully (0.002s)
'distclean' finished successfully (0.002s)
Setting top to : /io/bootloader
Setting out to : /io/bootloader/build
Python Version : 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Checking for 'gcc' (C compiler) : /buildroot/bin/aarch64-buildroot-linux-gnu-gcc
Checking size of pointer : 8
Platform : Linux-64bit-arm detected based on compiler
Checking for compiler flags -m64 : no
Checking for linker flags -m64 : no
Checking for library dl : yes
Checking for library pthread : yes
Checking for library m : yes
Checking for library z : yes
Checking for library cmocka : not found
Checking for function unsetenv : yes
Checking for function mkdtemp : yes
Checking for function dirname : yes
Checking for function basename : yes
Checking for function strndup : yes
Checking for function strnlen : yes
Checking for compiler flags -Wl,--as-needed : yes
Checking for program 'strip' : /usr/bin/strip
Checking for program 'strip' : /usr/bin/strip
'configure' finished successfully (2.610s)
'make_all' finished successfully (0.027s)
Waf: Entering directory `/io/bootloader/build/debug'
[ 1/16] Compiling src/pyi_path.c
[ 2/16] Compiling src/pyi_exception_dialog.c
[ 3/16] Compiling src/pyi_apple_events.c
[ 4/16] Compiling src/pyi_win32_utils.c
[ 5/16] Compiling src/pyi_utils.c
[ 6/16] Compiling src/pyi_main.c
[ 7/16] Compiling src/pyi_archive.c
[ 8/16] Compiling src/pyi_splash.c
[ 9/16] Compiling src/pyi_global.c
[10/16] Compiling src/pyi_splashlib.c
[11/16] Compiling src/pyi_python.c
[12/16] Compiling src/pyi_pythonlib.c
[13/16] Compiling src/pyi_launch.c
[14/16] Compiling src/main.c
[15/16] Linking build/debug/run_d
[16/16] Processing build/debug/run_d
/usr/bin/strip: Unable to recognise the format of the input file `run_d'
Waf: Leaving directory `/io/bootloader/build/debug'
Build failed
-> task in 'run_d' failed with exit status 1 (run with -v to display more information)
Please also see https://github.com/pyinstaller/pyinstaller/wiki/How-to-Report-Bugs
for more about what would use to solve the issue.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with bootloader/Dockerfile and reproduce the documented docker build and docker run commands using the arm64 base image. Trace the final strip step that reports an unrecognized run_d format; done means the arm64 bootloader build completes successfully.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- c, docker, python
- Domain
- build-system, devops
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100