mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-25 12:15:32 +03:00
98 lines
2.6 KiB
Diff
98 lines
2.6 KiB
Diff
--- go/src/cmd/dist/arm.c
|
|
+++ go.fixed/src/cmd/dist/arm.c
|
|
@@ -11,8 +11,8 @@
|
|
return "6";
|
|
}
|
|
#else
|
|
-static void useVFPv3(void);
|
|
-static void useVFPv1(void);
|
|
+void useVFPv3(void);
|
|
+void useVFPv1(void);
|
|
|
|
char *
|
|
xgetgoarm(void)
|
|
@@ -26,46 +26,6 @@
|
|
else if(xtryexecfunc(useVFPv1))
|
|
return "6";
|
|
return "5";
|
|
-}
|
|
-
|
|
-static void
|
|
-useVFPv3(void)
|
|
-{
|
|
- // try to run VFPv3-only "vmov.f64 d0, #112" instruction
|
|
- // we can't use that instruction directly, because we
|
|
- // might be compiling with a soft-float only toolchain.
|
|
- //
|
|
- // some newer toolchains are configured to use thumb
|
|
- // by default, so we need to do some mode changing magic
|
|
- // here.
|
|
- // We can use "bx pc; nop" here, but GNU as(1) insists
|
|
- // on warning us
|
|
- // "use of r15 in bx in ARM mode is not really useful"
|
|
- // so we workaround that by using "bx r0"
|
|
- __asm__ __volatile__ ("mov r0, pc");
|
|
- __asm__ __volatile__ ("bx r0");
|
|
- __asm__ __volatile__ (".word 0xeeb70b00"); // vmov.f64 d0, #112
|
|
- __asm__ __volatile__ (".word 0xe12fff1e"); // bx lr
|
|
-}
|
|
-
|
|
-static void
|
|
-useVFPv1(void)
|
|
-{
|
|
- // try to run "vmov.f64 d0, d0" instruction
|
|
- // we can't use that instruction directly, because we
|
|
- // might be compiling with a soft-float only toolchain
|
|
- //
|
|
- // some newer toolchains are configured to use thumb
|
|
- // by default, so we need to do some mode changing magic
|
|
- // here.
|
|
- // We can use "bx pc; nop" here, but GNU as(1) insists
|
|
- // on warning us
|
|
- // "use of r15 in bx in ARM mode is not really useful"
|
|
- // so we workaround that by using "bx r0"
|
|
- __asm__ __volatile__ ("mov r0, pc");
|
|
- __asm__ __volatile__ ("bx r0");
|
|
- __asm__ __volatile__ (".word 0xeeb00b40"); // vomv.f64 d0, d0
|
|
- __asm__ __volatile__ (".word 0xe12fff1e"); // bx lr
|
|
}
|
|
|
|
#endif
|
|
--- go/src/make.bash
|
|
+++ go.fixed/src/make.bash
|
|
@@ -129,7 +132,7 @@
|
|
if [ -z "$CC" -a -z "$(type -t gcc)" -a -n "$(type -t clang)" ]; then
|
|
export CC=clang CXX=clang++
|
|
fi
|
|
-${CC:-gcc} $mflag -O2 -Wall -Werror -o cmd/dist/dist -Icmd/dist "$DEFGOROOT" cmd/dist/*.c
|
|
+${CC:-gcc} $mflag -O2 -Wall -Werror -o cmd/dist/dist -Icmd/dist "$DEFGOROOT" cmd/dist/*.c cmd/dist/*.S
|
|
|
|
# -e doesn't propagate out of eval, so check success by hand.
|
|
eval $(./cmd/dist/dist env -p || echo FAIL=true)
|
|
--- /dev/null 2014-12-09 07:52:31.203329541 -0200
|
|
+++ go.fixed/src/cmd/dist/arm.S 2014-12-09 10:29:34.149969243 -0200
|
|
@@ -0,0 +1,24 @@
|
|
+#ifdef __ARMEL__
|
|
+
|
|
+.text
|
|
+
|
|
+.global useVFPv3
|
|
+.hidden useVFPv3
|
|
+.type useVFPv3,%function
|
|
+useVFPv3:
|
|
+ mov r0, pc
|
|
+ bx r0
|
|
+ .word 0xeeb70b00 // vmov.f64 d0, #112
|
|
+ .word 0xe12fff1e // bx lr
|
|
+
|
|
+
|
|
+.global useVFPv1
|
|
+.hidden useVFPv1
|
|
+.type useVFPv1,%function
|
|
+useVFPv1:
|
|
+ mov r0, pc
|
|
+ bx r0
|
|
+ .word 0xeeb00b40 // vomv.f64 d0, d0
|
|
+ .word 0xe12fff1e // bx lr
|
|
+
|
|
+#endif
|