-
Notifications
You must be signed in to change notification settings - Fork 17.8k
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
cmd/dist: go_bootstrap is broken on arm #9759
Comments
I believe this is an alignment issue
|
The argv pointer is not aligned. It gets set by runtime1.go:args(), and that gets called from asm_arm.s:rt0_go. So either that bad argv is from something getting clobbered, or the main argv started out as bad. We should probably add an assert to args() to be sure. |
This code has not changed betwen g01.4 and tip. What I think is an issue is 5a is miscompiling Compare the output from
and tip
gdb also shows the same for a go1.4 binary
and compiled with tip's 5a
note the I believe that the other |
which revision are you testing for tip?
I tried the latest master branch, cross compiling on x86_64 produces the
correct
result.
0006d6d8 <_rt0_arm_linux1>:
6d6d8: e92d0003 push {r0, r1}
6d6dc: e3a07014 mov r7, #20
6d6e0: ef000000 svc 0x00000000
6d6e4: eafff384 b 6a4fc <runtime.rt0_go>
The only difference between a real ARM and x86_64 besides word size is that
char is unsigned on ARM, so I tried -funsigned-char, but make.bash still
produced
the correct go command (at least _rt0_arm_linux1 is correctly assembled.)
|
I'm at 5ab3823c and I see (gdb) disassemble _rt0_arm_linux1 |
What's the status of this issue? The ARM Linux builders seem to be working on the dashboard. |
Running
I get:
The instruction at 0x0000 is encoded as e92d0003, which is what was reported as the correct encoding, so I believe this is fixed (that and the arm builders are working). |
The arm build broke somewhere around revision 2ec2931 but was obscured by #9734
The text was updated successfully, but these errors were encountered: