uh i guess try this
This commit is contained in:
parent
7f82d7ce97
commit
25aa8bd7da
|
@ -13,12 +13,13 @@ It provides:
|
|||
TODO: Steps to build the LCPU native module on Windows and Linux
|
||||
|
||||
|
||||
LLVM is built using a podman container (see Containerfile). The steps for replicating this build follow:
|
||||
LLVM is built using a podman container (see Containerfile). The steps for building follow (this should only need to be done once):
|
||||
|
||||
```
|
||||
mkdir llvm_build
|
||||
podman build -t llvm-build -f Containerfile.llvm
|
||||
podman run --rm --cpus 24 -m 32G --mount type=bind,source=$PWD/llvm_build,destination=/build/llvm-build localhost/llvm-build
|
||||
podman run --rm --mount type=bind,source=$PWD/llvm_build,destination=/build/llvm-build localhost/llvm-build
|
||||
cp -rv llvm_build/install lua/bin/llvm
|
||||
```
|
||||
|
||||
|
||||
|
|
20
ideas.md
20
ideas.md
|
@ -19,14 +19,16 @@ This is basically the working ideas for the LCPU project.
|
|||
### Integrated simple project workflow
|
||||
|
||||
### LLVM integration
|
||||
- LLVM assembler (llvm-mc) is used
|
||||
- clang for C code? (if it's not prohibitively expensive)
|
||||
- In all cases (as/clang), the tools will all be firewalled to the given project data directory.
|
||||
In the case of clang, an addional path will be allowed (clang freestanding headers), but that's the only exception.
|
||||
|
||||
- LLVM tools integrated into server library? Or installed in lua/bin?
|
||||
- Use LLVM tools (clang as both assembler driver and C/C++ driver) for compilation.
|
||||
- Prebuilt toolchain with compiler-rt can be built. (only needed since compiler-rt isn't usually built with most system clang installations.)
|
||||
|
||||
- Write assembly/maybe C code using a tiny project system (data for them would go in server data folder ?)
|
||||
- Write assembly/maybe C/C++ code using a tiny project system (data for them would go in server data folder ?)
|
||||
|
||||
- No conditional compilation
|
||||
- All files in a project are built by that project
|
||||
|
||||
- Diagnostic integration (by either using libclang)
|
||||
|
||||
- Text editor used to edit project source files
|
||||
|
||||
|
@ -38,7 +40,7 @@ This is basically the working ideas for the LCPU project.
|
|||
- possibly override for "respectful" users and admins (admins probably wouldn't even count)?
|
||||
|
||||
- Admin controlled per-user max LCPU entity count (default 8)
|
||||
- Admins don't count
|
||||
- Admins don't count to limits
|
||||
|
||||
- Admin controled global (affects all placed LCPUs) scheduler cycle rate.
|
||||
- Couldn't be faster than tickrate though or we might block source (and.. well, i dont think i have to explain)
|
||||
|
@ -48,5 +50,5 @@ This is basically the working ideas for the LCPU project.
|
|||
## Addon interopability
|
||||
|
||||
- Wiremod interopability
|
||||
- Wiremod GPIO (which uses normal wire stuff)
|
||||
- Console Screen
|
||||
- Wiremod GPIO peripheral (to interface with wire world)
|
||||
- special Console Screen peripheral (interfacing specifically with it)
|
||||
|
|
|
@ -15,26 +15,10 @@ cmake -Wno-dev -GNinja -S /build/llvm/llvm -B /build/llvm-build/build \
|
|||
-DCMAKE_INSTALL_PREFIX="/build/llvm-build/install" \
|
||||
-DLLVM_INCLUDE_TESTS=OFF \
|
||||
-DLLVM_ENABLE_PROJECTS="clang;lld" \
|
||||
-DLLVM_ENABLE_RUNTIMES="compiler-rt" \
|
||||
-DCOMPILER_RT_BAREMETAL_BUILD=ON \
|
||||
-DLLVM_TARGETS_TO_BUILD="RISCV" \
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE="riscv32-none-gnu"
|
||||
-DLLVM_DEFAULT_TARGET_TRIPLE="riscv32-unknown-gnu"
|
||||
|
||||
ninja -C /build/llvm-build/build -j $JOBS
|
||||
ninja -C /build/llvm-build install
|
||||
|
||||
# Build compiler-rt with our toolchain.
|
||||
cmake -Wno-dev -GNinja -S /build/llvm/compiler-rt -B /build/llvm-build/build-compiler-rt \
|
||||
-DCMAKE_C_COMPILER="/build/llvm-build/install/bin/clang" \
|
||||
-DCMAKE_CXX_COMPILER="/build/llvm-build/install/bin/clang++" \
|
||||
-DCMAKE_C_FLAGS="-target riscv32-none-gnu" \
|
||||
-DCMAKE_CXX_FLAGS="-target riscv32-none-gnu" \
|
||||
-DCMAKE_INSTALL_PREFIX="/build/llvm-build/install/lib/clang/${LLVM_VERSION}" \
|
||||
-DLLVM_CONFIG_PATH="/build/llvm-build/install/bin/llvm-config" \
|
||||
-DCOMPILER_RT_BAREMETAL_BUILD=ON \
|
||||
-DCOMPILER_RT_BUILD_SANITIZERS=OFF \
|
||||
-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \
|
||||
-DCOMPILER_RT_BUILD_PROFILE=OFF \
|
||||
-DCOMPILER_RT_BUILD_MEMPROF=OFF \
|
||||
-DCOMPILER_RT_BUILD_ORC=OFF
|
||||
|
||||
ninja -C /build/llvm-build/build-compiler-rt -j $JOBS
|
||||
ninja -C /build/llvm-build/build-compiler-rt install
|
||||
|
|
Loading…
Reference in New Issue