mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 12:27:35 +00:00
More compat work. Rename libraries from LibFoo.a => libfoo.a
This makes it more straightforward to build a cross-compiler toolchain. Also move math stuff from LibC to LibM.
This commit is contained in:
parent
cccc8d8aeb
commit
3f29a12d90
23 changed files with 140 additions and 79 deletions
3
LibM/.gitignore
vendored
Normal file
3
LibM/.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
|||
*.o
|
||||
*.d
|
||||
libm.a
|
32
LibM/Makefile
Normal file
32
LibM/Makefile
Normal file
|
@ -0,0 +1,32 @@
|
|||
OBJS = math.o
|
||||
|
||||
LIBRARY = libm.a
|
||||
STANDARD_FLAGS = -std=c++17
|
||||
WARNING_FLAGS = -Wextra -Wall -Wundef -Wcast-qual -Wwrite-strings -Wimplicit-fallthrough
|
||||
FLAVOR_FLAGS = -fno-exceptions -fno-rtti
|
||||
OPTIMIZATION_FLAGS = -Os
|
||||
INCLUDE_FLAGS = -I.. -I.
|
||||
|
||||
DEFINES = -DSERENITY -DUSERLAND -DSANITIZE_PTRS
|
||||
|
||||
CXXFLAGS = -MMD -MP $(WARNING_FLAGS) $(OPTIMIZATION_FLAGS) $(FLAVOR_FLAGS) $(STANDARD_FLAGS) $(INCLUDE_FLAGS) $(DEFINES)
|
||||
CXX = i686-pc-serenity-g++
|
||||
LD = i686-pc-serenity-ld
|
||||
AR = i686-pc-serenity-ar
|
||||
|
||||
all: $(LIBRARY)
|
||||
|
||||
$(LIBRARY): $(OBJS)
|
||||
@echo "LIB $@"; $(AR) rcs $@ $(OBJS)
|
||||
|
||||
.cpp.o:
|
||||
@echo "CXX $<"; $(CXX) $(CXXFLAGS) -o $@ -c $<
|
||||
|
||||
%.no: %.asm
|
||||
@echo "NASM $@"; nasm -f elf -o $@ $<
|
||||
|
||||
-include $(OBJS:%.o=%.d)
|
||||
|
||||
clean:
|
||||
@echo "CLEAN"; rm -f $(LIBRARY) $(OBJS) *.d
|
||||
|
6
LibM/install.sh
Executable file
6
LibM/install.sh
Executable file
|
@ -0,0 +1,6 @@
|
|||
#!/bin/bash
|
||||
|
||||
mkdir -p ../Root/usr/include/sys/
|
||||
mkdir -p ../Root/usr/lib/
|
||||
cp *.h ../Root/usr/include/
|
||||
cp libm.a ../Root/usr/lib/
|
23
LibM/math.cpp
Normal file
23
LibM/math.cpp
Normal file
|
@ -0,0 +1,23 @@
|
|||
#include <LibC/assert.h>
|
||||
#include <LibM/math.h>
|
||||
|
||||
extern "C" {
|
||||
|
||||
double cos(double)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
|
||||
double sin(double)
|
||||
{
|
||||
assert(false);
|
||||
}
|
||||
|
||||
double pow(double x, double y)
|
||||
{
|
||||
(void)x;
|
||||
(void)y;
|
||||
assert(false);
|
||||
}
|
||||
|
||||
}
|
57
LibM/math.h
Normal file
57
LibM/math.h
Normal file
|
@ -0,0 +1,57 @@
|
|||
#pragma once
|
||||
|
||||
#include <sys/cdefs.h>
|
||||
|
||||
__BEGIN_DECLS
|
||||
|
||||
#define HUGE_VAL 1e10000
|
||||
|
||||
double acos(double);
|
||||
float acosf(float);
|
||||
double asin(double);
|
||||
float asinf(float);
|
||||
double atan(double);
|
||||
float atanf(float);
|
||||
double atan2(double, double);
|
||||
float atan2f(float, float);
|
||||
double cos(double);
|
||||
float cosf(float);
|
||||
double cosh(double);
|
||||
float coshf(float);
|
||||
double sin(double);
|
||||
float sinf(float);
|
||||
double sinh(double);
|
||||
float sinhf(float);
|
||||
double tan(double);
|
||||
float tanf(float);
|
||||
double tanh(double);
|
||||
float tanhf(float);
|
||||
double ceil(double);
|
||||
float ceilf(float);
|
||||
double floor(double);
|
||||
float floorf(float);
|
||||
double round(double);
|
||||
float roundf(float);
|
||||
double fabs(double);
|
||||
float fabsf(float);
|
||||
double fmod(double, double);
|
||||
float fmodf(float, float);
|
||||
double exp(double);
|
||||
float expf(float);
|
||||
double frexp(double, int* exp);
|
||||
float frexpf(float, int* exp);
|
||||
double log(double);
|
||||
float logf(float);
|
||||
double log10(double);
|
||||
float log10f(float);
|
||||
double sqrt(double);
|
||||
float sqrtf(float);
|
||||
double modf(double, double*);
|
||||
float modff(float, float*);
|
||||
double ldexp(double, int exp);
|
||||
float ldexpf(float, int exp);
|
||||
|
||||
double pow(double x, double y);
|
||||
|
||||
__END_DECLS
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue