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
MIPS32: add .gnu.attributes and .MIPS.abiflags sections to the output object #39677
Comments
this bug blocks #39289 |
I figure out a WIP patch: |
MIPS32 uses .gnu.attributes and .MIPS.abiflags to mark the ABI that the object is using, and the kernel will set the correct FP mode for it. Currrently we have no these 2 sections and thus since kernel will treat the objects as FP32. To support FPXX and FP64 in future, we should add support of these 2 sections. More details about FP32/FPXX/FP64 are explained in: https://web.archive.org/web/20180828210612/https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking Fixes golang#39677
MIPS32 uses .gnu.attributes and .MIPS.abiflags to mark the ABI that the object is using, and the kernel will set the correct FP mode for it. Currrently we have no these 2 sections and thus since kernel will treat the objects as FP32. To support FPXX and FP64 in future, we should add support of these 2 sections. More details about FP32/FPXX/FP64 are explained in: https://web.archive.org/web/20180828210612/https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking Fixes golang#39677
MIPS32 uses .gnu.attributes and .MIPS.abiflags to mark the ABI that the object is using, and the kernel will set the correct FP mode for it. Currrently we have no these 2 sections and thus since kernel will treat the objects as FP32. To support FPXX and FP64 in future, we should add support of these 2 sections. More details about FP32/FPXX/FP64 are explained in: https://web.archive.org/web/20180828210612/https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking Fixes golang#39677
MIPS32 uses .gnu.attributes and .MIPS.abiflags to mark the ABI that the object is using, and the kernel will set the correct FP mode for it. Currrently we have no these 2 sections and thus since kernel will treat the objects as FP32. To support FPXX and FP64 in future, we should add support of these 2 sections. More details about FP32/FPXX/FP64 are explained in: https://web.archive.org/web/20180828210612/https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking Fixes golang#39677
MIPS32 uses .gnu.attributes and .MIPS.abiflags to mark the ABI that the object is using, and the kernel will set the correct FP mode for it. Currrently we have no these 2 sections and thus since kernel will treat the objects as FP32. To support FPXX and FP64 in future, we should add support of these 2 sections. More details about FP32/FPXX/FP64 are explained in: https://web.archive.org/web/20180828210612/https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking Fixes golang#39677
MIPS32 uses .gnu.attributes and .MIPS.abiflags to mark the ABI that the object is using, and the kernel will set the correct FP mode for it. Currrently we have no these 2 sections and thus since kernel will treat the objects as FP32. To support FPXX and FP64 in future, we should add support of these 2 sections. More details about FP32/FPXX/FP64 are explained in: https://web.archive.org/web/20180828210612/https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking Fixes golang#39677
MIPS32 uses .gnu.attributes and .MIPS.abiflags to mark the ABI that the object is using, and the kernel will set the correct FP mode for it. Currrently we have no these 2 sections and thus since kernel will treat the objects as FP32. To support FPXX and FP64 in future, we should add support of these 2 sections. We add these 2 section for non-external-linker output only, since external linker will add these 2 sections. More details about FP32/FPXX/FP64 are explained in: https://web.archive.org/web/20180828210612/https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking Fixes golang#39677
Change https://golang.org/cl/239217 mentions this issue: |
MIPS32 uses .gnu.attributes and .MIPS.abiflags section to mark the FP ABI the object is using, and the kernel will set the correct FP mode for it. Currrently Go doesn't generate these 2 sections. If we link object without these 2 sections togather FPXX objects, the result will be FPXX, which is wrong: FP32 + FPXX -> FP32 FPXX + FP64 -> FP64 FP32 + FP64 -> reject These 2 sections is also needed to support FPXX and FP64 in future. More details about FP32/FPXX/FP64 are explained in: https://web.archive.org/web/20180828210612/https://dmz-portal.mips.com/wiki/MIPS_O32_ABI_-_FR0_and_FR1_Interlinking Fixes golang#39677 Change-Id: Ia34e7461dee38a4f575dd8ace609988744512ac1
PING |
Change https://golang.org/cl/323275 mentions this issue: |
For #39677 For #44513 Change-Id: I8c4193fd4359b83e6739e7e30a3a42b5f21b0f1a Reviewed-on: https://go-review.googlesource.com/c/go/+/323275 Trust: Ian Lance Taylor <iant@golang.org> Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
The text was updated successfully, but these errors were encountered: