From: Rob Pike Date: Fri, 12 Sep 2008 19:17:13 +0000 (-0700) Subject: fix silly portability bug X-Git-Tag: weekly.2009-11-06~3224 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=e9047d1fc29abe809cec69ca4aa73a8942934635;p=gostls13.git fix silly portability bug R=gri OCL=15238 CL=15238 --- diff --git a/src/runtime/rt1_amd64_darwin.c b/src/runtime/rt1_amd64_darwin.c index 49ecb3a0ca..2cbc7f6134 100644 --- a/src/runtime/rt1_amd64_darwin.c +++ b/src/runtime/rt1_amd64_darwin.c @@ -6,6 +6,9 @@ #include "amd64_darwin.h" #include "signals.h" +extern void _rt0_amd64_darwin(); +byte* startsym = (byte*)_rt0_amd64_darwin; + typedef uint64 __uint64_t; /* From /usr/include/mach/i386/_structs.h */ diff --git a/src/runtime/rt1_amd64_linux.c b/src/runtime/rt1_amd64_linux.c index 403b248338..14cdf63e0b 100644 --- a/src/runtime/rt1_amd64_linux.c +++ b/src/runtime/rt1_amd64_linux.c @@ -6,6 +6,9 @@ #include "amd64_linux.h" #include "signals.h" +extern void _rt0_amd64_linux(); +byte* startsym = (byte*)_rt0_amd64_linux; + /* From /usr/include/asm-x86_64/sigcontext.h */ struct _fpstate { uint16 cwd; diff --git a/src/runtime/rt2_amd64.c b/src/runtime/rt2_amd64.c index 2943ac0d36..b7c3b11109 100644 --- a/src/runtime/rt2_amd64.c +++ b/src/runtime/rt2_amd64.c @@ -94,11 +94,10 @@ int32 inlinetrap(int32 sig, byte* pc) { extern void etext(); - extern void _rt0_amd64_darwin(); if(sig != 5) /* SIGTRAP */ return 0; - if(pc-2 < (byte*)_rt0_amd64_darwin || pc >= (byte*)etext) + if(pc-2 < startsym || pc >= (byte*)etext) return 0; if(pc[-2] != 0xcd) /* INTB */ return 0; diff --git a/src/runtime/runtime.h b/src/runtime/runtime.h index 11d3fdac8e..e786b78ecf 100644 --- a/src/runtime/runtime.h +++ b/src/runtime/runtime.h @@ -208,6 +208,7 @@ G* allg; int32 goidgen; extern int32 gomaxprocs; extern int32 panicking; +extern byte *startsym; /* * common functions and data