sparc: get libroot to build
Add various stubs to fix undefined references. No implementation for anything yet. Change-Id: I2d398bc2369d099e3a35f0713058d6a5edc6801d Reviewed-on: https://review.haiku-os.org/c/1138 Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
@@ -0,0 +1,13 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2010, Ingo Weinhold, [email protected].
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*/
|
||||||
|
#ifndef _SYSTEM_ARCH_SPARC_DEFS_H
|
||||||
|
#define _SYSTEM_ARCH_SPARC_DEFS_H
|
||||||
|
|
||||||
|
|
||||||
|
#define SPINLOCK_PAUSE() do {} while (false)
|
||||||
|
|
||||||
|
|
||||||
|
#endif /* _SYSTEM_ARCH_SPARC_DEFS_H */
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2008, Ingo Weinhold, [email protected].
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <SupportDefs.h>
|
||||||
|
|
||||||
|
#include <libroot_private.h>
|
||||||
|
|
||||||
|
|
||||||
|
void*
|
||||||
|
get_stack_frame(void)
|
||||||
|
{
|
||||||
|
// TODO: Implement!
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void*
|
||||||
|
__arch_get_caller(void)
|
||||||
|
{
|
||||||
|
// TODO: Implement!
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2012, Haiku, Inc.
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*
|
||||||
|
* Authors:
|
||||||
|
* François Revol <[email protected]>
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <OS.h>
|
||||||
|
|
||||||
|
#include <arch_cpu.h>
|
||||||
|
#include <libroot_private.h>
|
||||||
|
#include <real_time_data.h>
|
||||||
|
|
||||||
|
static vint32 *sConversionFactor;
|
||||||
|
|
||||||
|
//XXX: this is a hack
|
||||||
|
// remove me when platform code works
|
||||||
|
static int64
|
||||||
|
__sparc_get_time_base(void)
|
||||||
|
{
|
||||||
|
static uint64 time_dilation_field = 0;
|
||||||
|
return time_dilation_field++;
|
||||||
|
}
|
||||||
|
|
||||||
|
bigtime_t
|
||||||
|
system_time(void)
|
||||||
|
{
|
||||||
|
uint64 timeBase = __sparc_get_time_base();
|
||||||
|
|
||||||
|
uint32 cv = sConversionFactor ? *sConversionFactor : 0;
|
||||||
|
return (timeBase >> 32) * cv + (((timeBase & 0xffffffff) * cv) >> 32);
|
||||||
|
}
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
#include <OS.h>
|
||||||
|
#include "syscalls.h"
|
||||||
|
|
||||||
|
|
||||||
|
thread_id
|
||||||
|
find_thread(const char *name)
|
||||||
|
{
|
||||||
|
return _kern_find_thread(name);
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2006, Ingo Weinhold <[email protected]>.
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include <OS.h>
|
||||||
|
|
||||||
|
#include <arch_cpu.h>
|
||||||
|
#include <libroot_private.h>
|
||||||
|
#include <real_time_data.h>
|
||||||
|
|
||||||
|
|
||||||
|
static struct arch_real_time_data *sRealTimeData;
|
||||||
|
|
||||||
|
void
|
||||||
|
__arch_init_time(struct real_time_data *data, bool setDefaults)
|
||||||
|
{
|
||||||
|
sRealTimeData = &data->arch_data;
|
||||||
|
|
||||||
|
if (setDefaults) {
|
||||||
|
sRealTimeData->system_time_conversion_factor = 1000000000LL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// __sparc_setup_system_time(&sRealTimeData->system_time_conversion_factor);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bigtime_t
|
||||||
|
__arch_get_system_time_offset(struct real_time_data *data)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
@@ -0,0 +1,139 @@
|
|||||||
|
SubDir HAIKU_TOP src system libroot posix glibc arch sparc ;
|
||||||
|
|
||||||
|
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc arch $(TARGET_ARCH) ;
|
||||||
|
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch
|
||||||
|
$(TARGET_ARCH) ;
|
||||||
|
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include arch generic ;
|
||||||
|
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc include ;
|
||||||
|
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc stdlib ;
|
||||||
|
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc math ;
|
||||||
|
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc libio ;
|
||||||
|
SubDirSysHdrs $(HAIKU_TOP) src system libroot posix glibc ;
|
||||||
|
|
||||||
|
SubDirHdrs $(HAIKU_TOP) src system libroot posix glibc arch generic ;
|
||||||
|
|
||||||
|
UsePrivateHeaders libroot ;
|
||||||
|
|
||||||
|
SubDirCcFlags -D_GNU_SOURCE -D_IEEE_LIBM ;
|
||||||
|
|
||||||
|
local genericSources =
|
||||||
|
branred.c
|
||||||
|
cmp.c dbl2mpn.c divrem.c
|
||||||
|
dosincos.c
|
||||||
|
halfulp.c
|
||||||
|
memrchr.c
|
||||||
|
mpa.c mpatan.c mpatan2.c mpexp.c mplog.c mpn2dbl.c
|
||||||
|
mpn2flt.c mpn2ldbl.c mpsqrt.c mptan.c
|
||||||
|
mul.c mul_n.c
|
||||||
|
sincos32.c
|
||||||
|
slowexp.c
|
||||||
|
slowpow.c
|
||||||
|
|
||||||
|
e_acosh.c e_acoshf.c # e_acoshl.c
|
||||||
|
e_atan2.c e_atan2f.c # e_atan2l.c
|
||||||
|
e_atanh.c e_atanhf.c # e_atanhl.c
|
||||||
|
e_cosh.c e_coshf.c # e_coshl.c
|
||||||
|
e_exp.c e_expf.c
|
||||||
|
e_fmod.c e_fmodf.c # e_fmodl.c
|
||||||
|
e_gamma_r.c e_gammaf_r.c
|
||||||
|
e_hypot.c e_hypotf.c # e_hypotl.c
|
||||||
|
e_j0.c e_j0f.c
|
||||||
|
e_j1.c e_j1f.c
|
||||||
|
e_jn.c e_jnf.c
|
||||||
|
e_lgamma_r.c e_lgammaf_r.c
|
||||||
|
e_log.c e_logf.c
|
||||||
|
e_log10.c e_log10f.c
|
||||||
|
e_pow.c e_powf.c # e_powl.c
|
||||||
|
e_rem_pio2f.c
|
||||||
|
e_remainder.c e_remainderf.c # e_remainderl.c
|
||||||
|
e_scalb.c e_scalbf.c # e_scalbl.c
|
||||||
|
e_sinh.c e_sinhf.c # e_sinhl.c
|
||||||
|
k_cos.c k_cosf.c
|
||||||
|
k_sin.c k_sinf.c
|
||||||
|
k_rem_pio2.c k_rem_pio2f.c # k_rem_pio2l.c
|
||||||
|
k_tan.c k_tanf.c
|
||||||
|
s_asinh.c s_asinhf.c # s_asinhl.c
|
||||||
|
s_atan.c s_atanf.c # s_atanl.c
|
||||||
|
s_cbrt.c s_cbrtf.c # s_cbrtl.c
|
||||||
|
s_ceil.c s_ceilf.c # s_ceill.c
|
||||||
|
s_copysign.c s_copysignf.c # s_copysignl.c
|
||||||
|
s_cos.c s_cosf.c
|
||||||
|
s_erf.c s_erff.c # s_erfl.c
|
||||||
|
s_expm1f.c s_expm1.c
|
||||||
|
s_fabs.c s_fabsf.c # s_fabsl.S
|
||||||
|
s_finite.c s_finitef.c # s_finitel.c
|
||||||
|
s_floor.c s_floorf.c # s_floorl.c
|
||||||
|
s_fma.c s_fmaf.c # s_fmal.c
|
||||||
|
s_fmax.c s_fmaxf.c # s_fmaxl.c
|
||||||
|
s_fmin.c s_fminf.c # s_fminl.c
|
||||||
|
s_fpclassify.c s_fpclassifyf.c # s_fpclassifyl.c
|
||||||
|
s_frexp.c s_frexpf.c # s_frexpl.c
|
||||||
|
s_ilogb.c s_ilogbf.c
|
||||||
|
s_isinf.c s_isinff.c # s_isinfl.c
|
||||||
|
s_ldexp.c s_ldexpf.c # s_ldexpl.c
|
||||||
|
s_llrint.c s_llrintf.c # s_llrintl.c
|
||||||
|
s_log1p.c s_log1pf.c
|
||||||
|
s_logb.c s_logbf.c # s_logbl.c
|
||||||
|
s_lrint.c s_lrintf.c # s_lrintl.c
|
||||||
|
s_lround.c s_lroundf.c
|
||||||
|
s_modf.c s_modff.c # s_modfl.c
|
||||||
|
s_nan.c s_nanf.c # s_nanl.c
|
||||||
|
s_nextafter.c s_nextafterf.c # s_nextafterl.c
|
||||||
|
s_nexttoward.c # s_nexttowardf.c s_nexttowardl.c
|
||||||
|
s_round.c s_roundf.c # s_roundl.c
|
||||||
|
s_scalbn.c s_scalbnf.c # s_scalbnl.c
|
||||||
|
s_signbit.c s_signbitf.c # s_signbitl.c
|
||||||
|
s_significand.c s_significandf.c
|
||||||
|
s_signgam.c
|
||||||
|
s_sin.c s_sinf.c # s_sinl.c
|
||||||
|
s_sincos.c s_sincosf.c
|
||||||
|
s_tan.c s_tanf.c
|
||||||
|
s_tanh.c s_tanhf.c
|
||||||
|
s_trunc.c s_truncf.c
|
||||||
|
t_exp.c
|
||||||
|
w_acos.c w_acosf.c # w_acosl.c
|
||||||
|
w_acosh.c w_acoshf.c # w_acoshl.c
|
||||||
|
w_atan2.c w_atan2f.c # w_atan2l.c
|
||||||
|
w_asin.c w_asinf.c # w_asinl.c
|
||||||
|
w_atanh.c w_atanhf.c # w_atanhl.c
|
||||||
|
w_cosh.c w_coshf.c # w_coshl.c
|
||||||
|
w_drem.c w_dremf.c # w_dreml.c
|
||||||
|
w_exp.c w_expf.c # w_expl.c
|
||||||
|
w_fmod.c w_fmodf.c # w_fmodl.c
|
||||||
|
w_hypot.c w_hypotf.c # w_hypotl.c
|
||||||
|
w_j0.c w_j0f.c
|
||||||
|
w_j1.c w_j1f.c
|
||||||
|
w_jn.c w_jnf.c
|
||||||
|
w_lgamma.c w_lgammaf.c
|
||||||
|
w_lgamma_r.c w_lgammaf_r.c
|
||||||
|
w_log.c w_logf.c # w_logl.c
|
||||||
|
w_log10.c w_log10f.c # w_log10l.c
|
||||||
|
w_pow.c w_powf.c # w_powl.c
|
||||||
|
w_remainder.c w_remainderf.c # w_remainderl.c
|
||||||
|
w_scalb.c w_scalbf.c # w_scalbl.c
|
||||||
|
w_sinh.c w_sinhf.c # w_sinhl.c
|
||||||
|
# no asm for m68k in glibc
|
||||||
|
w_sqrt.c w_sqrtf.c # w_sqrtl.c
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
MergeObject <$(TARGET_ARCH)>posix_gnu_arch_$(TARGET_ARCH)_generic.o :
|
||||||
|
$(genericSources)
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
#MergeObject <$(TARGET_ARCH)>posix_gnu_arch_$(TARGET_ARCH)_other.o :
|
||||||
|
# ;
|
||||||
|
|
||||||
|
|
||||||
|
MergeObjectFromObjects <$(TARGET_ARCH)>posix_gnu_arch_$(TARGET_ARCH).o
|
||||||
|
: :
|
||||||
|
<$(TARGET_ARCH)>posix_gnu_arch_$(TARGET_ARCH)_generic.o
|
||||||
|
# <$(TARGET_ARCH)>posix_gnu_arch_$(TARGET_ARCH)_other.o
|
||||||
|
;
|
||||||
|
|
||||||
|
|
||||||
|
SEARCH on [ FGristFiles $(genericSources) ]
|
||||||
|
= [ FDirName $(HAIKU_TOP) src system libroot posix glibc arch
|
||||||
|
generic ] ;
|
||||||
|
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
/* Copyright (C) 1997-2012 Free Software Foundation, Inc.
|
||||||
|
This file is part of the GNU C Library.
|
||||||
|
|
||||||
|
The GNU C Library is free software; you can redistribute it and/or
|
||||||
|
modify it under the terms of the GNU Lesser General Public
|
||||||
|
License as published by the Free Software Foundation; either
|
||||||
|
version 2.1 of the License, or (at your option) any later version.
|
||||||
|
|
||||||
|
The GNU C Library is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
Lesser General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU Lesser General Public
|
||||||
|
License along with the GNU C Library; if not, see
|
||||||
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
|
#ifndef _FENV_H
|
||||||
|
# error "Never use <bits/fenv.h> directly; include <fenv.h> instead."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Define bits representing the exception. We use the bit positions
|
||||||
|
of the appropriate bits in the FPU control word. */
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
FE_INVALID = 0x01,
|
||||||
|
#define FE_INVALID FE_INVALID
|
||||||
|
__FE_DENORM = 0x02,
|
||||||
|
FE_DIVBYZERO = 0x04,
|
||||||
|
#define FE_DIVBYZERO FE_DIVBYZERO
|
||||||
|
FE_OVERFLOW = 0x08,
|
||||||
|
#define FE_OVERFLOW FE_OVERFLOW
|
||||||
|
FE_UNDERFLOW = 0x10,
|
||||||
|
#define FE_UNDERFLOW FE_UNDERFLOW
|
||||||
|
FE_INEXACT = 0x20
|
||||||
|
#define FE_INEXACT FE_INEXACT
|
||||||
|
};
|
||||||
|
|
||||||
|
#define FE_ALL_EXCEPT \
|
||||||
|
(FE_INEXACT | FE_DIVBYZERO | FE_UNDERFLOW | FE_OVERFLOW | FE_INVALID)
|
||||||
|
|
||||||
|
/* The ix87 FPU supports all of the four defined rounding modes. We
|
||||||
|
use again the bit positions in the FPU control word as the values
|
||||||
|
for the appropriate macros. */
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
FE_TONEAREST = 0,
|
||||||
|
#define FE_TONEAREST FE_TONEAREST
|
||||||
|
FE_DOWNWARD = 0x400,
|
||||||
|
#define FE_DOWNWARD FE_DOWNWARD
|
||||||
|
FE_UPWARD = 0x800,
|
||||||
|
#define FE_UPWARD FE_UPWARD
|
||||||
|
FE_TOWARDZERO = 0xc00
|
||||||
|
#define FE_TOWARDZERO FE_TOWARDZERO
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/* Type representing exception flags. */
|
||||||
|
typedef unsigned short int fexcept_t;
|
||||||
|
|
||||||
|
|
||||||
|
/* Type representing floating-point environment. This structure
|
||||||
|
corresponds to the layout of the block written by the `fstenv'
|
||||||
|
instruction and has additional fields for the contents of the MXCSR
|
||||||
|
register as written by the `stmxcsr' instruction. */
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
unsigned short int __control_word;
|
||||||
|
unsigned short int __unused1;
|
||||||
|
unsigned short int __status_word;
|
||||||
|
unsigned short int __unused2;
|
||||||
|
unsigned short int __tags;
|
||||||
|
unsigned short int __unused3;
|
||||||
|
unsigned int __eip;
|
||||||
|
unsigned short int __cs_selector;
|
||||||
|
unsigned int __opcode:11;
|
||||||
|
unsigned int __unused4:5;
|
||||||
|
unsigned int __data_offset;
|
||||||
|
unsigned short int __data_selector;
|
||||||
|
unsigned short int __unused5;
|
||||||
|
#ifdef __x86_64__
|
||||||
|
unsigned int __mxcsr;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
fenv_t;
|
||||||
|
|
||||||
|
/* If the default argument is used we use this value. */
|
||||||
|
#define FE_DFL_ENV ((const fenv_t *) -1)
|
||||||
|
|
||||||
|
#ifdef __USE_GNU
|
||||||
|
/* Floating-point environment where none of the exception is masked. */
|
||||||
|
# define FE_NOMASK_ENV ((const fenv_t *) -2)
|
||||||
|
#endif
|
||||||
|
|
||||||
@@ -0,0 +1,9 @@
|
|||||||
|
/* This file provides inline versions of floating-pint environment
|
||||||
|
handling functions. If there were any. */
|
||||||
|
|
||||||
|
#ifndef __NO_MATH_INLINES
|
||||||
|
|
||||||
|
/* Here is where the code would go. */
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
SubDir HAIKU_TOP src system libroot posix string arch sparc ;
|
||||||
|
|
||||||
|
UsePrivateSystemHeaders ;
|
||||||
|
|
||||||
|
SEARCH_SOURCE += [ FDirName $(SUBDIR) $(DOTDOT) generic ] ;
|
||||||
|
|
||||||
|
MergeObject <$(TARGET_ARCH)>posix_string_arch_$(TARGET_ARCH).o :
|
||||||
|
memcpy.c
|
||||||
|
memset.c
|
||||||
|
;
|
||||||
Reference in New Issue
Block a user