Descriptionruntime: fix GOARM<7 build
Update issue 8690
If liblink determines that the host doesn't support TLS it replaces the MRC call with a BL runtime.tls_read_fallback. The problem is save_g doesn't expect anyone to make any BL calls and hasn't setup its own link register properly so when runtime.tls_read_fallback returns the LR points to save_g, not save_g's caller so the RET at the end of the function turns into an infinite loop.
This fix is only a proof of concept, I think the real fix should go into liblink as its MRC substitution is not as transparent as expected.
Patch Set 1 #Patch Set 2 : diff -r b2eb00e46b33b62701a225c329d82181b084baca https://code.google.com/p/go #Patch Set 3 : diff -r b2eb00e46b33b62701a225c329d82181b084baca https://code.google.com/p/go #Patch Set 4 : diff -r 6b163ec2122a172030284060788f535ab3b9d0e3 https://code.google.com/p/go #Patch Set 5 : diff -r efbf09e0a5b49cb07d32be24d2291dc28bbf5d69 https://code.google.com/p/go #Patch Set 6 : diff -r e76e4cdfa016710fc576e3418a2ff64d93753f5b https://code.google.com/p/go #MessagesTotal messages: 10
|