Port libc_r to amd64, and turn it back on for amd64. It passes all of
the same src/lib/libc_r/test/* tests that the other platforms pass.
This commit is contained in:
+2
-1
@@ -42,10 +42,11 @@ _csu=csu
|
||||
|
||||
.if ${MACHINE_ARCH} != "amd64"
|
||||
_libstand= libstand
|
||||
.endif
|
||||
|
||||
.if !defined(NOLIBC_R)
|
||||
_libc_r= libc_r
|
||||
.endif
|
||||
.endif
|
||||
|
||||
.if !defined(NO_BIND)
|
||||
_libbind= libbind
|
||||
|
||||
@@ -87,6 +87,24 @@
|
||||
__asm__("frstor %0": :"m"(*fdata)); \
|
||||
} while (0)
|
||||
#define SET_RETURN_ADDR_JB(jb, ra) (jb)[0]._jb[0] = (int)(ra)
|
||||
#elif defined(__amd64__)
|
||||
#define GET_STACK_JB(jb) ((unsigned long)((jb)[0]._jb[2]))
|
||||
#define GET_STACK_SJB(sjb) ((unsigned long)((sjb)[0]._sjb[2]))
|
||||
#define GET_STACK_UC(ucp) ((unsigned long)((ucp)->uc_mcontext.mc_rsp))
|
||||
#define SET_STACK_JB(jb, stk) (jb)[0]._jb[2] = (long)(stk)
|
||||
#define SET_STACK_SJB(sjb, stk) (sjb)[0]._sjb[2] = (long)(stk)
|
||||
#define SET_STACK_UC(ucp, stk) (ucp)->uc_mcontext.mc_rsp = (long)(stk)
|
||||
#define FP_SAVE_UC(ucp) do { \
|
||||
char *fdata; \
|
||||
fdata = (char *) (ucp)->uc_mcontext.mc_fpstate; \
|
||||
__asm__("fxsave %0": :"m"(*fdata)); \
|
||||
} while (0)
|
||||
#define FP_RESTORE_UC(ucp) do { \
|
||||
char *fdata; \
|
||||
fdata = (char *) (ucp)->uc_mcontext.mc_fpstate; \
|
||||
__asm__("fxrstor %0": :"m"(*fdata)); \
|
||||
} while (0)
|
||||
#define SET_RETURN_ADDR_JB(jb, ra) (jb)[0]._jb[0] = (long)(ra)
|
||||
#elif defined(__alpha__)
|
||||
#include <machine/reg.h>
|
||||
#define GET_STACK_JB(jb) ((unsigned long)((jb)[0]._jb[R_SP + 4]))
|
||||
|
||||
+1
-1
@@ -141,7 +141,7 @@ SUBDIR+=ipftest \
|
||||
iptest
|
||||
.endif
|
||||
|
||||
.if !defined(NOLIBC_R) && ${MACHINE_ARCH} != "amd64"
|
||||
.if !defined(NOLIBC_R)
|
||||
SUBDIR+=pppctl
|
||||
.endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user