You've already forked ultrasm64-2
mirror of
https://github.com/HackerN64/ultrasm64-2.git
synced 2026-01-21 10:38:08 -08:00
Remove IDO support completely
This commit is contained in:
@@ -49,25 +49,19 @@ endif
|
||||
|
||||
all-except-recomp: $(LIBAUDIOFILE) $(BUILD_PROGRAMS)
|
||||
|
||||
all: all-except-recomp ido-static-recomp
|
||||
all: all-except-recomp
|
||||
|
||||
clean:
|
||||
$(RM) $(ALL_PROGRAMS)
|
||||
$(MAKE) -C audiofile clean
|
||||
$(MAKE) -C ido-static-recomp clean
|
||||
|
||||
define COMPILE
|
||||
$(1): $($1_SOURCES)
|
||||
$$(CC) $(CFLAGS) $($1_CFLAGS) $$^ -o $$@ $($1_LDFLAGS) $(LDFLAGS)
|
||||
endef
|
||||
|
||||
ido-static-recomp:
|
||||
@$(MAKE) -C ido-static-recomp setup
|
||||
@$(MAKE) -C ido-static-recomp
|
||||
|
||||
$(foreach p,$(BUILD_PROGRAMS),$(eval $(call COMPILE,$(p))))
|
||||
|
||||
$(LIBAUDIOFILE):
|
||||
@$(MAKE) -C audiofile
|
||||
|
||||
.PHONY: all all-except-recomp clean default ido-static-recomp
|
||||
.PHONY: all all-except-recomp clean default
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
IndentWidth: 4
|
||||
Language: Cpp
|
||||
UseTab: Never
|
||||
ColumnLimit: 120
|
||||
PointerAlignment: Left
|
||||
BreakBeforeBraces: Attach
|
||||
SpaceAfterCStyleCast: false
|
||||
Cpp11BracedListStyle: false
|
||||
IndentCaseLabels: true
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignOperands: true
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakBeforeBinaryOperators: None
|
||||
AllowShortBlocksOnASingleLine: true
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: false
|
||||
AlignEscapedNewlines: Left
|
||||
AlignTrailingComments: true
|
||||
SortIncludes: false
|
||||
10
tools/ido-static-recomp/.gitignore
vendored
10
tools/ido-static-recomp/.gitignore
vendored
@@ -1,10 +0,0 @@
|
||||
.idea/
|
||||
build/
|
||||
.vscode/
|
||||
|
||||
qemu-irix
|
||||
|
||||
ctx.c.m2c
|
||||
*.s
|
||||
|
||||
.DS_Store
|
||||
@@ -1,19 +0,0 @@
|
||||
# Custom Functionality
|
||||
|
||||
## Redirection
|
||||
IDO recomp currently has two forms of path redirection, both involving the `/usr` folder.
|
||||
|
||||
### `/usr/lib`
|
||||
In order for users to not having to worry about installing the binaries in particular locations in `/usr/lib`, recomp automatically redirects `/usr/lib/` paths. This is done by determining the location of `cc` and redirecting to the same directory. This does mean all the binaries and `err.english.cc` are expected to be a part of a single flattened directory.
|
||||
|
||||
It is also possible to override the auto redirect by using the environment variable `USR_LIB` with the desired redirection path. This can be used if the binaries are not in a flattened directory with `cc` or if on Linux and are unable to read `/proc/self/exe`.
|
||||
|
||||
Wrapper functions implementing this redirection:
|
||||
* `init_file`
|
||||
* `wrapper_execvp`
|
||||
|
||||
### /usr/include
|
||||
The other form of redirection is completely optional and is done by setting the environment variable `USR_INCLUDE` to the desired redirection path. This will than redirect all opened files files there. This is done so that the `mdebug` section file paths will still use `/usr/include` path, but the files themselves can be located elsewhere for greater flexibility.
|
||||
|
||||
Wrapper functions implementing this redirection:
|
||||
* `wrapper_open`
|
||||
@@ -1,231 +0,0 @@
|
||||
# Build options can be changed by modifying the makefile or by building with 'make SETTING=value'.
|
||||
# It is also possible to override the settings in Defaults in a file called .make_options as 'SETTING=value'.
|
||||
|
||||
-include .make_options
|
||||
|
||||
#### Defaults ####
|
||||
|
||||
# if WERROR is 1, pass -Werror to CC, so warnings would be treated as errors
|
||||
WERROR ?= 0
|
||||
# if RELEASE is 1 strip binaries as well as enable optimizations
|
||||
RELEASE ?= 1
|
||||
# On Mac, set this to `universal` to build universal (x86+ARM) binaries
|
||||
TARGET ?= native
|
||||
# Set to 1 to build with sanitization enabled
|
||||
# N.B. cannot be used for `make setup` at the moment due to recomp.cpp not respecting it
|
||||
ASAN ?= 0
|
||||
|
||||
# IDO 5.3 only for Super Mario 64
|
||||
IDO_VERSION := IDO53
|
||||
IDO_TC := cc acpp as0 as1 cfe copt ugen ujoin uld umerge uopt usplit
|
||||
|
||||
|
||||
# -- determine the host environment and target
|
||||
# | Host | Targets |
|
||||
# |-------|-------------------|
|
||||
# | macOS | native, universal |
|
||||
# | linux | native |
|
||||
# | win | native |
|
||||
|
||||
UNAME_S := $(shell uname -s)
|
||||
UNAME_P := $(shell uname -p)
|
||||
|
||||
MAKE := make
|
||||
ifeq ($(OS),Windows_NT)
|
||||
DETECTED_OS := windows
|
||||
else ifeq ($(UNAME_S),Linux)
|
||||
DETECTED_OS := linux
|
||||
else ifeq ($(UNAME_S),Darwin)
|
||||
DETECTED_OS := macos
|
||||
MAKE := gmake
|
||||
CPPFLAGS += -xc++
|
||||
else
|
||||
$(error Unsupported host OS for Makefile)
|
||||
endif
|
||||
|
||||
RABBITIZER := tools/rabbitizer
|
||||
RABBITIZER_LIB := $(RABBITIZER)/build/librabbitizerpp.a
|
||||
|
||||
CC := gcc
|
||||
CXX := g++
|
||||
STRIP := strip
|
||||
|
||||
CSTD ?= -std=c11
|
||||
CFLAGS ?= -MMD -fno-strict-aliasing -I.
|
||||
CXXSTD ?= -std=c++17
|
||||
CXXFLAGS ?= -MMD
|
||||
WARNINGS ?= -Wall -Wextra
|
||||
LDFLAGS ?= -lm
|
||||
RECOMP_FLAGS ?=
|
||||
|
||||
ifneq ($(WERROR),0)
|
||||
WARNINGS += -Werror
|
||||
endif
|
||||
|
||||
ifeq ($(RELEASE),1)
|
||||
OPTFLAGS ?= -Os
|
||||
else
|
||||
OPTFLAGS ?= -Og -g3
|
||||
STRIP := @:
|
||||
endif
|
||||
|
||||
ifneq ($(ASAN),0)
|
||||
CFLAGS += -fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined -fno-sanitize-recover=all
|
||||
CXXFLAGS += -fsanitize=address -fsanitize=pointer-compare -fsanitize=pointer-subtract -fsanitize=undefined -fno-sanitize-recover=all
|
||||
endif
|
||||
|
||||
|
||||
ifeq ($(DETECTED_OS),windows)
|
||||
CXXFLAGS += -static
|
||||
endif
|
||||
|
||||
# -- Build Directories
|
||||
# designed to work with Make 3.81 (macOS/last GPL-2 version)
|
||||
# https://ismail.badawi.io/blog/automatic-directory-creation-in-make/
|
||||
BUILD_BASE ?= build
|
||||
BUILD_DIR := $(BUILD_BASE)
|
||||
BUILT_BIN := $(BUILD_DIR)/out
|
||||
|
||||
|
||||
# -- Location of original IDO binaries in SM64 repo
|
||||
IRIX_USR_DIR ?= ../ido5.3_compiler/usr
|
||||
|
||||
# -- Location of the irix tool chain error messages
|
||||
ERR_STRS := $(BUILT_BIN)/err.english.cc
|
||||
|
||||
RECOMP_ELF := $(BUILD_BASE)/recomp.elf
|
||||
LIBC_IMPL_O := libc_impl.o
|
||||
|
||||
TARGET_BINARIES := $(foreach binary,$(IDO_TC),$(BUILT_BIN)/$(binary))
|
||||
O_FILES := $(foreach binary,$(IDO_TC),$(BUILD_DIR)/$(binary).o)
|
||||
C_FILES := $(O_FILES:.o=.c)
|
||||
|
||||
# Automatic dependency files
|
||||
DEP_FILES := $(O_FILES:.o=.d)
|
||||
|
||||
# create build directories
|
||||
$(shell mkdir -p $(BUILT_BIN))
|
||||
|
||||
# per-file flags
|
||||
# 5.3 ugen relies on UB stack reads
|
||||
# to emulate, pass the conservative flag to `recomp`
|
||||
$(BUILD_BASE)/ugen.c: RECOMP_FLAGS := --conservative
|
||||
|
||||
$(RECOMP_ELF): CXXFLAGS += -I$(RABBITIZER)/include -I$(RABBITIZER)/cplusplus/include
|
||||
$(RECOMP_ELF): LDFLAGS += -L$(RABBITIZER)/build -lrabbitizerpp
|
||||
|
||||
ifneq ($(DETECTED_OS),windows)
|
||||
# For traceback
|
||||
$(RECOMP_ELF): LDFLAGS += -ldl
|
||||
endif
|
||||
ifeq ($(DETECTED_OS),linux)
|
||||
# For traceback
|
||||
$(RECOMP_ELF): LDFLAGS += -Wl,-export-dynamic
|
||||
endif
|
||||
|
||||
# Too many warnings, disable everything for now...
|
||||
$(RECOMP_ELF): WARNINGS += -Wpedantic -Wno-shadow -Wno-unused-variable -Wno-unused-but-set-variable -Wno-unused-parameter -Wno-implicit-fallthrough
|
||||
%/$(LIBC_IMPL_O): CFLAGS += -D$(IDO_VERSION)
|
||||
# TODO: fix warnings
|
||||
%/$(LIBC_IMPL_O): WARNINGS += -Wno-unused-parameter -Wno-unused-variable -Wno-unused-but-set-variable -Wno-sign-compare -Wno-deprecated-declarations
|
||||
|
||||
#### Main Targets ###
|
||||
|
||||
all: $(TARGET_BINARIES) $(ERR_STRS)
|
||||
|
||||
setup:
|
||||
$(MAKE) -C $(RABBITIZER) static CC=$(CC) CXX=$(CXX) DEBUG=$(DEBUG)
|
||||
$(MAKE) $(RECOMP_ELF)
|
||||
|
||||
clean:
|
||||
$(RM) -r $(BUILD_DIR)
|
||||
|
||||
distclean:
|
||||
$(RM) -r $(BUILD_BASE)
|
||||
$(MAKE) -C $(RABBITIZER) distclean
|
||||
|
||||
c_files: $(C_FILES)
|
||||
|
||||
|
||||
.PHONY: all clean distclean setup
|
||||
.DEFAULT_GOAL := all
|
||||
# Prevent removing intermediate files
|
||||
.SECONDARY:
|
||||
|
||||
|
||||
#### Various Recipes ####
|
||||
|
||||
$(BUILD_BASE)/%.elf: %.cpp
|
||||
$(CXX) $(CXXSTD) $(OPTFLAGS) $(CXXFLAGS) $(WARNINGS) -o $@ $^ $(LDFLAGS)
|
||||
|
||||
|
||||
$(BUILD_DIR)/%.c: $(IRIX_USR_DIR)/lib/%
|
||||
$(RECOMP_ELF) $(RECOMP_FLAGS) $< > $@ || ($(RM) -f $@ && false)
|
||||
|
||||
# cc and strip are special and are stored in the `bin` folder instead of the `lib` one
|
||||
$(BUILD_DIR)/%.c: $(IRIX_USR_DIR)/bin/%
|
||||
$(RECOMP_ELF) $(RECOMP_FLAGS) $< > $@ || ($(RM) -f $@ && false)
|
||||
|
||||
|
||||
$(BUILT_BIN)/%.cc: $(IRIX_USR_DIR)/lib/%.cc
|
||||
cp $^ $@
|
||||
|
||||
|
||||
ifeq ($(TARGET),universal)
|
||||
MACOS_FAT_TARGETS ?= arm64-apple-macos11 x86_64-apple-macos10.14
|
||||
|
||||
FAT_FOLDERS := $(foreach target,$(MACOS_FAT_TARGETS),$(BUILD_DIR)/$(target))
|
||||
|
||||
# create build directories
|
||||
$(shell mkdir -p $(FAT_FOLDERS))
|
||||
|
||||
# TODO: simplify
|
||||
FAT_BINARIES := $(foreach binary,$(IDO_TC),$(BUILT_BIN)/arm64-apple-macos11/$(binary)) \
|
||||
$(foreach binary,$(IDO_TC),$(BUILT_BIN)/x86_64-apple-macos10.14/$(binary))
|
||||
|
||||
$(BUILT_BIN)/%: $(BUILD_DIR)/arm64-apple-macos11/% $(BUILD_DIR)/x86_64-apple-macos10.14/% | $(ERR_STRS)
|
||||
lipo -create -output $@ $^
|
||||
|
||||
|
||||
$(BUILD_DIR)/arm64-apple-macos11/%: $(BUILD_DIR)/arm64-apple-macos11/%.o $(BUILD_DIR)/arm64-apple-macos11/$(LIBC_IMPL_O) | $(ERR_STRS)
|
||||
$(CC) $(CSTD) $(OPTFLAGS) $(CFLAGS) -target arm64-apple-macos11 -o $@ $^ $(LDFLAGS)
|
||||
$(STRIP) $@
|
||||
|
||||
$(BUILD_DIR)/x86_64-apple-macos10.14/%: $(BUILD_DIR)/x86_64-apple-macos10.14/%.o $(BUILD_DIR)/x86_64-apple-macos10.14/$(LIBC_IMPL_O) | $(ERR_STRS)
|
||||
$(CC) $(CSTD) $(OPTFLAGS) $(CFLAGS) -target x86_64-apple-macos10.14 -o $@ $^ $(LDFLAGS)
|
||||
$(STRIP) $@
|
||||
|
||||
$(BUILD_DIR)/arm64-apple-macos11/%.o: $(BUILD_DIR)/%.c
|
||||
$(CC) -c $(CSTD) $(OPTFLAGS) $(CFLAGS) -target arm64-apple-macos11 -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/x86_64-apple-macos10.14/%.o: $(BUILD_DIR)/%.c
|
||||
$(CC) -c $(CSTD) $(OPTFLAGS) $(CFLAGS) -target x86_64-apple-macos10.14 -o $@ $<
|
||||
|
||||
|
||||
$(BUILD_DIR)/arm64-apple-macos11/$(LIBC_IMPL_O): libc_impl.c
|
||||
$(CC) -c $(CSTD) $(OPTFLAGS) $(CFLAGS) $(WARNINGS) -target arm64-apple-macos11 -o $@ $<
|
||||
|
||||
$(BUILD_DIR)/x86_64-apple-macos10.14/$(LIBC_IMPL_O): libc_impl.c
|
||||
$(CC) -c $(CSTD) $(OPTFLAGS) $(CFLAGS) $(WARNINGS) -target x86_64-apple-macos10.14 -o $@ $<
|
||||
|
||||
else
|
||||
$(BUILT_BIN)/%: $(BUILD_DIR)/%.o $(BUILD_DIR)/$(LIBC_IMPL_O) | $(ERR_STRS)
|
||||
$(CC) $(CSTD) $(OPTFLAGS) $(CFLAGS) -o $@ $^ $(LDFLAGS)
|
||||
$(STRIP) $@
|
||||
|
||||
$(BUILD_DIR)/%.o: $(BUILD_DIR)/%.c
|
||||
$(CC) -c $(CSTD) $(OPTFLAGS) $(CFLAGS) -o $@ $<
|
||||
|
||||
|
||||
$(BUILD_DIR)/$(LIBC_IMPL_O): libc_impl.c
|
||||
$(CC) -c $(CSTD) $(OPTFLAGS) $(CFLAGS) $(WARNINGS) -o $@ $<
|
||||
endif
|
||||
|
||||
# Remove built-in rules, to improve performance
|
||||
MAKEFLAGS += --no-builtin-rules
|
||||
|
||||
-include $(DEP_FILES)
|
||||
|
||||
# --- Debugging
|
||||
# run `make print-VARIABLE` to debug that variable
|
||||
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
|
||||
@@ -1,66 +0,0 @@
|
||||
# Static Recompilation of IRIX Programs
|
||||
|
||||
Convert selected IRIX C toolchain programs into modern Linux or macOS programs
|
||||
|
||||
## Supported Programs
|
||||
|
||||
* IDO 5.3
|
||||
* cc, acpp, as0, as1, cfe, copt, ugen, ujoin, uld, umerge, uopt, usplit, ld, strip, upas
|
||||
* IDO 7.1
|
||||
* cc, acpp, as0, as1, cfe, ugen, ujoin, uld, umerge, uopt, usplit, upas
|
||||
|
||||
## Dependencies
|
||||
|
||||
### Linux (Debian / Ubuntu)
|
||||
|
||||
```bash
|
||||
sudo apt-get install build-essential
|
||||
```
|
||||
|
||||
### macOS
|
||||
|
||||
[Install homebrew](https://brew.sh/) and then:
|
||||
|
||||
```bash
|
||||
brew install make
|
||||
```
|
||||
|
||||
## Building
|
||||
|
||||
First build the recomp binary itself
|
||||
|
||||
```bash
|
||||
make setup
|
||||
```
|
||||
|
||||
```bash
|
||||
make VERSION=5.3
|
||||
make VERSION=7.1
|
||||
```
|
||||
|
||||
The build artifacts are located in `build/{7.1|5.3}/out`. Add `-j{thread num}` for multithreaded building.
|
||||
|
||||
By default, debug builds are created with less optimizations, debug flags, and unstripped binaries.
|
||||
Add `RELEASE=1` to build release builds with optimizations and stripped binaries.
|
||||
|
||||
### Creating Universal ARM/x86_64 macOS Builds
|
||||
|
||||
By default, make build script create native binaries on macOS. This was done to minimize the time to build the recompiled suite.
|
||||
In order to create "fat," universal ARM and x86_64, pass `TARGET=universal` to `gmake`.
|
||||
|
||||
### Manual Building
|
||||
|
||||
Example for compiling `as1` in a Linux environment:
|
||||
|
||||
```bash
|
||||
make -C tools/rabbitizer
|
||||
g++ -Itools/rabbitizer/include -Itools/rabbitizer/cplusplus/include recomp.cpp -o recomp.elf -g -Ltools/rabbitizer/build -lrabbitizerpp
|
||||
./recomp.elf ido/7.1/usr/lib/as1 > as1_c.c
|
||||
gcc libc_impl.c as1_c.c -o as1 -g -fno-strict-aliasing -lm -DIDO71
|
||||
```
|
||||
|
||||
Use the same approach for `cc`, `cfe`, `uopt`, `ugen`, `as1` (and `copt` if you need that).
|
||||
|
||||
Use `-DIDO53` instead of `-DIDO71` if the program you are trying to recompile was compiled with IDO 5.3 rather than IDO 7.1.
|
||||
|
||||
To compile `ugen` for IDO 5.3, add `--conservative` when invoking `./recomp.elf`. This mimics UB present in `ugen53`. That program reads uninitialized stack memory and its result depends on that stack memory.
|
||||
@@ -1,99 +0,0 @@
|
||||
#ifndef ELF_H
|
||||
#define ELF_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define EI_DATA 5
|
||||
#define EI_NIDENT 16
|
||||
#define SHT_SYMTAB 2
|
||||
#define SHT_DYNAMIC 6
|
||||
#define SHT_REL 9
|
||||
#define SHT_DYNSYM 11
|
||||
#define SHT_MIPS_REGINFO 0x70000006
|
||||
#define STN_UNDEF 0
|
||||
#define STT_OBJECT 1
|
||||
#define STT_FUNC 2
|
||||
#define DT_PLTGOT 3
|
||||
#define DT_MIPS_LOCAL_GOTNO 0x7000000a
|
||||
#define DT_MIPS_SYMTABNO 0x70000011
|
||||
#define DT_MIPS_GOTSYM 0x70000013
|
||||
|
||||
#define ELF32_R_SYM(info) ((info) >> 8)
|
||||
#define ELF32_R_TYPE(info) ((info) & 0xff)
|
||||
|
||||
#define ELF32_ST_TYPE(info) ((info) & 0xf)
|
||||
|
||||
#define R_MIPS_26 4
|
||||
#define R_MIPS_HI16 5
|
||||
#define R_MIPS_LO16 6
|
||||
|
||||
#define SHN_UNDEF 0
|
||||
#define SHN_COMMON 0xfff2
|
||||
#define SHN_MIPS_ACOMMON 0xff00
|
||||
#define SHN_MIPS_TEXT 0xff01
|
||||
#define SHN_MIPS_DATA 0xff02
|
||||
|
||||
typedef uint32_t Elf32_Addr;
|
||||
typedef uint32_t Elf32_Off;
|
||||
|
||||
typedef struct {
|
||||
uint8_t e_ident[EI_NIDENT];
|
||||
uint16_t e_type;
|
||||
uint16_t e_machine;
|
||||
uint32_t e_version;
|
||||
Elf32_Addr e_entry;
|
||||
Elf32_Off e_phoff;
|
||||
Elf32_Off e_shoff;
|
||||
uint32_t e_flags;
|
||||
uint16_t e_ehsize;
|
||||
uint16_t e_phentsize;
|
||||
uint16_t e_phnum;
|
||||
uint16_t e_shentsize;
|
||||
uint16_t e_shnum;
|
||||
uint16_t e_shstrndx;
|
||||
} Elf32_Ehdr;
|
||||
|
||||
typedef struct {
|
||||
uint32_t sh_name;
|
||||
uint32_t sh_type;
|
||||
uint32_t sh_flags;
|
||||
Elf32_Addr sh_addr;
|
||||
Elf32_Off sh_offset;
|
||||
uint32_t sh_size;
|
||||
uint32_t sh_link;
|
||||
uint32_t sh_info;
|
||||
uint32_t sh_addralign;
|
||||
uint32_t sh_entsize;
|
||||
} Elf32_Shdr;
|
||||
|
||||
typedef struct {
|
||||
uint32_t st_name;
|
||||
Elf32_Addr st_value;
|
||||
uint32_t st_size;
|
||||
uint8_t st_info;
|
||||
uint8_t st_other;
|
||||
uint16_t st_shndx;
|
||||
} Elf32_Sym;
|
||||
|
||||
typedef struct {
|
||||
Elf32_Addr r_offset;
|
||||
uint32_t r_info;
|
||||
} Elf32_Rel;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uint32_t ri_gprmask; /* General registers used. */
|
||||
uint32_t ri_cprmask[4]; /* Coprocessor registers used. */
|
||||
int32_t ri_gp_value; /* $gp register value. */
|
||||
} Elf32_RegInfo;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
int32_t d_tag; /* Dynamic entry type */
|
||||
union {
|
||||
uint32_t d_val; /* Integer value */
|
||||
Elf32_Addr d_ptr; /* Address value */
|
||||
} d_un;
|
||||
} Elf32_Dyn;
|
||||
|
||||
#endif
|
||||
@@ -1,24 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include "libc_impl.h"
|
||||
#include "helpers.h"
|
||||
|
||||
#define RM_RN 0
|
||||
#define RM_RZ 1
|
||||
#define RM_RP 2
|
||||
#define RM_RM 3
|
||||
|
||||
#define cvt_w_d(f) \
|
||||
((fcsr & RM_RZ) ? ((isnan(f) || f <= -2147483649.0 || f >= 2147483648.0) ? (fcsr |= 0x40, 2147483647) : (int)f) : (assert(0), 0))
|
||||
|
||||
#define cvt_w_s(f) cvt_w_d((double)f)
|
||||
|
||||
static union FloatReg f0 = {{0, 0}}, f2 = {{0, 0}}, f4 = {{0, 0}}, f6 = {{0, 0}}, f8 = {{0, 0}},
|
||||
f10 = {{0, 0}}, f12 = {{0, 0}}, f14 = {{0, 0}}, f16 = {{0, 0}}, f18 = {{0, 0}}, f20 = {{0, 0}},
|
||||
f22 = {{0, 0}}, f24 = {{0, 0}}, f26 = {{0, 0}}, f28 = {{0, 0}}, f30 = {{0, 0}};
|
||||
static uint32_t fcsr = 1;
|
||||
@@ -1,15 +0,0 @@
|
||||
#ifndef HELPERS_H
|
||||
#define HELPERS_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#define MEM_F64(a) (double_from_memory(mem, a))
|
||||
#define MEM_F32(a) (*(float *)(mem + a))
|
||||
#define MEM_U32(a) (*(uint32_t *)(mem + a))
|
||||
#define MEM_S32(a) (*(int32_t *)(mem + a))
|
||||
#define MEM_U16(a) (*(uint16_t *)(mem + ((a) ^ 2)))
|
||||
#define MEM_S16(a) (*(int16_t *)(mem + ((a) ^ 2)))
|
||||
#define MEM_U8(a) (*(uint8_t *)(mem + ((a) ^ 3)))
|
||||
#define MEM_S8(a) (*(int8_t *)(mem + ((a) ^ 3)))
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,182 +0,0 @@
|
||||
#ifndef LIBC_IMPL_H
|
||||
#define LIBC_IMPL_H
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
union FloatReg {
|
||||
float f[2];
|
||||
uint32_t w[2];
|
||||
//double d;
|
||||
};
|
||||
|
||||
void mmap_initial_data_range(uint8_t *mem, uint32_t start, uint32_t end);
|
||||
void setup_libc_data(uint8_t *mem);
|
||||
|
||||
uint32_t wrapper_sbrk(uint8_t *mem, int increment);
|
||||
uint32_t wrapper_malloc(uint8_t *mem, uint32_t size);
|
||||
uint32_t wrapper_calloc(uint8_t *mem, uint32_t num, uint32_t size);
|
||||
uint32_t wrapper_realloc(uint8_t *mem, uint32_t data_addr, uint32_t size);
|
||||
int wrapper_fscanf(uint8_t *mem, uint32_t fp_addr, uint32_t format_addr, uint32_t sp);
|
||||
int wrapper_printf(uint8_t *mem, uint32_t format_addr, uint32_t sp);
|
||||
int wrapper_sprintf(uint8_t *mem, uint32_t str_addr, uint32_t format_addr, uint32_t sp);
|
||||
int wrapper_fprintf(uint8_t *mem, uint32_t fp_addr, uint32_t format_addr, uint32_t sp);
|
||||
int wrapper__doprnt(uint8_t *mem, uint32_t format_addr, uint32_t params_addr, uint32_t fp_addr);
|
||||
void wrapper_free(uint8_t *mem, uint32_t data_addr);
|
||||
uint32_t wrapper_strlen(uint8_t *mem, uint32_t str_addr);
|
||||
int wrapper_open(uint8_t *mem, uint32_t pathname_addr, int flags, int mode);
|
||||
int wrapper_creat(uint8_t *mem, uint32_t pathname_addr, int mode);
|
||||
int wrapper_access(uint8_t *mem, uint32_t pathname_addr, int mode);
|
||||
int wrapper_rename(uint8_t *mem, uint32_t oldpath_addr, uint32_t newpath_addr);
|
||||
int wrapper_utime(uint8_t *mem, uint32_t filename_addr, uint32_t times_addr);
|
||||
int wrapper_flock(uint8_t *mem, int fd, int operation);
|
||||
int wrapper_chmod(uint8_t *mem, uint32_t path_addr, uint32_t mode);
|
||||
int wrapper_umask(int mode);
|
||||
uint32_t wrapper_ecvt(uint8_t *mem, double number, int ndigits, uint32_t decpt_addr, uint32_t sign_addr);
|
||||
uint32_t wrapper_fcvt(uint8_t *mem, double number, int ndigits, uint32_t decpt_addr, uint32_t sign_addr);
|
||||
double wrapper_sqrt(double v);
|
||||
float wrapper_sqrtf(float v);
|
||||
int wrapper_atoi(uint8_t *mem, uint32_t nptr_addr);
|
||||
int wrapper_atol(uint8_t *mem, uint32_t nptr_addr);
|
||||
double wrapper_atof(uint8_t *mem, uint32_t nptr_addr);
|
||||
int wrapper_strtol(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base);
|
||||
uint32_t wrapper_strtoul(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base);
|
||||
int64_t wrapper_strtoll(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base);
|
||||
uint64_t wrapper_strtoull(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr, int base);
|
||||
double wrapper_strtod(uint8_t *mem, uint32_t nptr_addr, uint32_t endptr_addr);
|
||||
uint32_t wrapper_strchr(uint8_t *mem, uint32_t str_addr, int c);
|
||||
uint32_t wrapper_strrchr(uint8_t *mem, uint32_t str_addr, int c);
|
||||
uint32_t wrapper_strcspn(uint8_t *mem, uint32_t str_addr, uint32_t invalid_addr);
|
||||
uint32_t wrapper_strpbrk(uint8_t *mem, uint32_t str_addr, uint32_t accept_addr);
|
||||
int wrapper_fstat(uint8_t *mem, int fildes, uint32_t buf_addr);
|
||||
int wrapper_stat(uint8_t *mem, uint32_t pathname_addr, uint32_t buf_addr);
|
||||
int wrapper_ftruncate(uint8_t *mem, int fd, int length);
|
||||
int wrapper_truncate(uint8_t *mem, uint32_t pathname_addr, int length);
|
||||
void wrapper_bcopy(uint8_t *mem, uint32_t src_addr, uint32_t dst_addr, uint32_t len);
|
||||
uint32_t wrapper_memcpy(uint8_t *mem, uint32_t dst_addr, uint32_t src_addr, uint32_t len);
|
||||
uint32_t wrapper_memccpy(uint8_t *mem, uint32_t dst_addr, uint32_t src_addr, int c, uint32_t len);
|
||||
int wrapper_read(uint8_t *mem, int fd, uint32_t buf_addr, uint32_t nbytes);
|
||||
int wrapper_write(uint8_t *mem, int fd, uint32_t buf_addr, uint32_t nbytes);
|
||||
uint32_t wrapper_fopen(uint8_t *mem, uint32_t path_addr, uint32_t mode_addr);
|
||||
uint32_t wrapper_freopen(uint8_t *mem, uint32_t path_addr, uint32_t mode_addr, uint32_t fp_addr);
|
||||
int wrapper_fclose(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper_fflush(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper_fchown(uint8_t *mem, int fd, int owner, int group);
|
||||
int wrapper_ftell(uint8_t *mem, uint32_t fp_addr);
|
||||
void wrapper_rewind(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper_fseek(uint8_t *mem, uint32_t fp_addr, int offset, int origin);
|
||||
int wrapper_lseek(uint8_t *mem, int fd, int offset, int whence);
|
||||
int wrapper_dup(uint8_t *mem, int fd);
|
||||
int wrapper_dup2(uint8_t *mem, int oldfd, int newfd);
|
||||
int wrapper_pipe(uint8_t *mem, uint32_t pipefd_addr);
|
||||
void wrapper_perror(uint8_t *mem, uint32_t str_addr);
|
||||
int wrapper_fdopen(uint8_t *mem, int fd, uint32_t mode_addr);
|
||||
uint32_t wrapper_memset(uint8_t *mem, uint32_t dest_addr, int byte, uint32_t n);
|
||||
int wrapper_bcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n);
|
||||
int wrapper_memcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n);
|
||||
int wrapper_getpid(void);
|
||||
int wrapper_getpgrp(uint8_t *mem);
|
||||
int wrapper_remove(uint8_t *mem, uint32_t path_addr);
|
||||
int wrapper_unlink(uint8_t *mem, uint32_t path_addr);
|
||||
int wrapper_close(uint8_t *mem, int fd);
|
||||
int wrapper_strcmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr);
|
||||
int wrapper_strncmp(uint8_t *mem, uint32_t s1_addr, uint32_t s2_addr, uint32_t n);
|
||||
uint32_t wrapper_strcpy(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr);
|
||||
uint32_t wrapper_strncpy(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr, uint32_t n);
|
||||
uint32_t wrapper_strcat(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr);
|
||||
uint32_t wrapper_strncat(uint8_t *mem, uint32_t dest_addr, uint32_t src_addr, uint32_t n);
|
||||
uint32_t wrapper_strtok(uint8_t *mem, uint32_t str_addr, uint32_t delimiters_addr);
|
||||
uint32_t wrapper_strstr(uint8_t *mem, uint32_t str1_addr, uint32_t str2_addr);
|
||||
uint32_t wrapper_strdup(uint8_t *mem, uint32_t str_addr);
|
||||
int wrapper_toupper(int c);
|
||||
int wrapper_tolower(int c);
|
||||
int wrapper_gethostname(uint8_t *mem, uint32_t name_addr, uint32_t len);
|
||||
int wrapper_isatty(uint8_t *mem, int fd);
|
||||
int wrapper_times(uint8_t *mem, uint32_t buffer_addr);
|
||||
uint32_t wrapper_strftime(uint8_t *mem, uint32_t ptr_addr, uint32_t maxsize, uint32_t format_addr, uint32_t timeptr_addr);
|
||||
int wrapper_clock(void);
|
||||
uint32_t wrapper_ctime(uint8_t *mem, uint32_t timep_addr);
|
||||
uint32_t wrapper_localtime(uint8_t *mem, uint32_t timep_addr);
|
||||
int wrapper_setvbuf(uint8_t *mem, uint32_t fp_addr, uint32_t buf_addr, int mode, uint32_t size);
|
||||
int wrapper___semgetc(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper___semputc(uint8_t *mem, int c, uint32_t fp_addr);
|
||||
int wrapper_fgetc(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper_fgets(uint8_t *mem, uint32_t str_addr, int count, uint32_t fp_addr);
|
||||
int wrapper___filbuf(uint8_t *mem, uint32_t fp_addr);
|
||||
int wrapper___flsbuf(uint8_t *mem, int ch, uint32_t fp_addr);
|
||||
int wrapper_ungetc(uint8_t *mem, int ch, uint32_t fp_addr);
|
||||
uint32_t wrapper_gets(uint8_t *mem, uint32_t str_addr);
|
||||
uint32_t wrapper_fread(uint8_t *mem, uint32_t data_addr, uint32_t size, uint32_t count, uint32_t fp_addr);
|
||||
uint32_t wrapper_fwrite(uint8_t *mem, uint32_t data_addr, uint32_t size, uint32_t count, uint32_t fp_addr);
|
||||
int wrapper_fputs(uint8_t *mem, uint32_t str_addr, uint32_t fp_addr);
|
||||
int wrapper_puts(uint8_t *mem, uint32_t str_addr);
|
||||
uint32_t wrapper_getcwd(uint8_t *mem, uint32_t buf_addr, uint32_t size);
|
||||
int wrapper_time(uint8_t *mem, uint32_t tloc_addr);
|
||||
void wrapper_bzero(uint8_t *mem, uint32_t str_addr, uint32_t n);
|
||||
int wrapper_fp_class_d(double d);
|
||||
double wrapper_ldexp(double d, int i);
|
||||
uint64_t wrapper___ll_mul(uint64_t a0, uint64_t a1);
|
||||
int64_t wrapper___ll_div(int64_t a0, int64_t a1);
|
||||
int64_t wrapper___ll_rem(uint64_t a0, int64_t a1);
|
||||
uint64_t wrapper___ll_lshift(uint64_t a0, uint64_t shift);
|
||||
int64_t wrapper___ll_rshift(int64_t a0, uint64_t shift);
|
||||
uint64_t wrapper___ull_div(uint64_t a0, uint64_t a1);
|
||||
uint64_t wrapper___ull_rem(uint64_t a0, uint64_t a1);
|
||||
uint64_t wrapper___ull_rshift(uint64_t a0, uint64_t shift);
|
||||
uint64_t wrapper___d_to_ull(double d);
|
||||
int64_t wrapper___d_to_ll(double d);
|
||||
uint64_t wrapper___f_to_ull(float f);
|
||||
int64_t wrapper___f_to_ll(float f);
|
||||
float wrapper___ull_to_f(uint64_t v);
|
||||
float wrapper___ll_to_f(int64_t v);
|
||||
double wrapper___ull_to_d(uint64_t v);
|
||||
double wrapper___ll_to_d(int64_t v);
|
||||
void wrapper_abort(uint8_t *mem);
|
||||
void wrapper_exit(uint8_t *mem, int status);
|
||||
void wrapper__exit(uint8_t *mem, int status);
|
||||
void wrapper__cleanup(uint8_t *mem);
|
||||
uint32_t wrapper__rld_new_interface(uint8_t *mem, uint32_t operation, uint32_t sp);
|
||||
void wrapper__exithandle(uint8_t *mem);
|
||||
int wrapper__prctl(uint8_t *mem, int operation, uint32_t sp);
|
||||
double wrapper__atod(uint8_t *mem, uint32_t buffer_addr, int ndigits, int dexp);
|
||||
int wrapper_pathconf(uint8_t *mem, uint32_t path_addr, int name);
|
||||
uint32_t wrapper_getenv(uint8_t *mem, uint32_t name_addr);
|
||||
uint32_t wrapper_gettxt(uint8_t *mem, uint32_t msgid_addr, uint32_t default_str_addr);
|
||||
uint32_t wrapper_setlocale(uint8_t *mem, int category, uint32_t locale_addr);
|
||||
uint32_t wrapper_mmap(uint8_t *mem, uint32_t addr, uint32_t length, int prot, int flags, int fd, int offset);
|
||||
int wrapper_munmap(uint8_t *mem, uint32_t addr, uint32_t length);
|
||||
int wrapper_mprotect(uint8_t *mem, uint32_t addr, uint32_t length, int prot);
|
||||
int wrapper_sysconf(uint8_t *mem, int name);
|
||||
int wrapper_getpagesize(uint8_t *mem);
|
||||
int wrapper_strerror(uint8_t *mem, int errnum);
|
||||
int wrapper_ioctl(uint8_t *mem, int fd, uint32_t request, uint32_t sp);
|
||||
int wrapper_fcntl(uint8_t *mem, int fd, int cmd, uint32_t sp);
|
||||
uint32_t wrapper_signal(uint8_t *mem, int signum, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t handler_addr, uint32_t sp);
|
||||
uint32_t wrapper_sigset(uint8_t *mem, int signum, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t disp_addr, uint32_t sp);
|
||||
int wrapper_get_fpc_csr(uint8_t *mem);
|
||||
int wrapper_set_fpc_csr(uint8_t *mem, int csr);
|
||||
int wrapper_setjmp(uint8_t *mem, uint32_t addr);
|
||||
void wrapper_longjmp(uint8_t *mem, uint32_t addr, int status);
|
||||
uint32_t wrapper_tempnam(uint8_t *mem, uint32_t dir_addr, uint32_t pfx_addr);
|
||||
uint32_t wrapper_tmpnam(uint8_t *mem, uint32_t str_addr);
|
||||
uint32_t wrapper_mktemp(uint8_t *mem, uint32_t template_addr);
|
||||
int wrapper_mkstemp(uint8_t *mem, uint32_t name_addr);
|
||||
uint32_t wrapper_tmpfile(uint8_t *mem);
|
||||
int wrapper_wait(uint8_t *mem, uint32_t wstatus_addr);
|
||||
int wrapper_kill(uint8_t *mem, int pid, int sig);
|
||||
int wrapper_execlp(uint8_t *mem, uint32_t file_addr, uint32_t sp);
|
||||
int wrapper_execv(uint8_t *mem, uint32_t pathname_addr, uint32_t argv_addr);
|
||||
int wrapper_execvp(uint8_t *mem, uint32_t file_addr, uint32_t argv_addr);
|
||||
int wrapper_fork(uint8_t *mem);
|
||||
int wrapper_system(uint8_t *mem, uint32_t command_addr);
|
||||
uint32_t wrapper_tsearch(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr);
|
||||
uint32_t wrapper_tfind(uint8_t *mem, uint32_t key_addr, uint32_t rootp_addr, uint32_t compar_addr);
|
||||
uint32_t wrapper_qsort(uint8_t *mem, uint32_t base_addr, uint32_t num, uint32_t size, uint64_t (*trampoline)(uint8_t *mem, uint32_t sp, uint32_t a0, uint32_t a1, uint32_t a2, uint32_t a3, uint32_t fp_dest), uint32_t compare_addr, uint32_t sp);
|
||||
uint32_t wrapper_regcmp(uint8_t *mem, uint32_t string1_addr, uint32_t sp);
|
||||
uint32_t wrapper_regex(uint8_t *mem, uint32_t re_addr, uint32_t subject_addr, uint32_t sp);
|
||||
void wrapper___assert(uint8_t *mem, uint32_t assertion_addr, uint32_t file_addr, int line);
|
||||
|
||||
union FloatReg FloatReg_from_double(double d);
|
||||
double double_from_FloatReg(union FloatReg floatreg);
|
||||
double double_from_memory(uint8_t *mem, uint32_t address);
|
||||
|
||||
#endif
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,23 +0,0 @@
|
||||
IndentWidth: 4
|
||||
Language: Cpp
|
||||
UseTab: Never
|
||||
ColumnLimit: 160
|
||||
PointerAlignment: Right
|
||||
BreakBeforeBraces: Attach
|
||||
SpaceAfterCStyleCast: false
|
||||
Cpp11BracedListStyle: false
|
||||
IndentCaseLabels: true
|
||||
BinPackArguments: true
|
||||
BinPackParameters: true
|
||||
AlignAfterOpenBracket: Align
|
||||
AlignOperands: true
|
||||
BreakBeforeTernaryOperators: true
|
||||
BreakBeforeBinaryOperators: None
|
||||
AllowShortBlocksOnASingleLine: true
|
||||
AllowShortIfStatementsOnASingleLine: false
|
||||
AllowShortLoopsOnASingleLine: false
|
||||
AllowShortCaseLabelsOnASingleLine: false
|
||||
AllowShortFunctionsOnASingleLine: false
|
||||
AlignEscapedNewlines: Left
|
||||
AlignTrailingComments: true
|
||||
SortIncludes: false
|
||||
@@ -1,9 +0,0 @@
|
||||
Checks: 'readability-*,-readability-magic-numbers,clang-diagnostic-*,clang-analyzer-*,-clang-analyzer-security.insecureAPI.DeprecatedOrUnsafeBufferHandling,bugprone*,-bugprone-branch-clone,modernize*,performance*,portability*,diagnostic-*,analyzer-*,misc*,-misc-no-recursion'
|
||||
WarningsAsErrors: ''
|
||||
HeaderFilterRegex: '(src|include)\/.*\.h$'
|
||||
FormatStyle: 'file'
|
||||
CheckOptions:
|
||||
# Require argument names to match exactly (instead of allowing a name to be a prefix/suffix of another)
|
||||
# Note: 'true' is expected by clang-tidy 12+ but '1' is used for compatibility with older versions
|
||||
- key: readability-inconsistent-declaration-parameter-name.Strict
|
||||
value: 1
|
||||
@@ -1,2 +0,0 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=auto
|
||||
@@ -1,54 +0,0 @@
|
||||
name: Build and upload to PyPI
|
||||
|
||||
# Build on every branch push, tag push, and pull request change:
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build_wheels:
|
||||
name: Build wheels on ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build wheels
|
||||
uses: pypa/cibuildwheel@v2.5.0
|
||||
env:
|
||||
CIBW_ARCHS_WINDOWS: "auto"
|
||||
CIBW_ARCHS_LINUX: "auto"
|
||||
CIBW_ARCHS_MACOS: "all"
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
path: ./wheelhouse/*.whl
|
||||
|
||||
build_sdist:
|
||||
name: Build source distribution
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- name: Build sdist
|
||||
run: pipx run build --sdist
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
path: dist/*.tar.gz
|
||||
|
||||
upload_pypi:
|
||||
needs: [build_wheels, build_sdist]
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
|
||||
steps:
|
||||
- uses: actions/download-artifact@v2
|
||||
with:
|
||||
name: artifact
|
||||
path: dist
|
||||
|
||||
- uses: pypa/gh-action-pypi-publish@v1.4.2
|
||||
with:
|
||||
user: __token__
|
||||
password: ${{ secrets.pypi_password }}
|
||||
@@ -1,14 +0,0 @@
|
||||
name: make
|
||||
|
||||
# Build on every branch push, tag push, and pull request change:
|
||||
on: [push, pull_request]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: make
|
||||
run: make WERROR=1
|
||||
215
tools/ido-static-recomp/tools/rabbitizer/.gitignore
vendored
215
tools/ido-static-recomp/tools/rabbitizer/.gitignore
vendored
@@ -1,215 +0,0 @@
|
||||
# https://raw.githubusercontent.com/github/gitignore/main/C.gitignore
|
||||
# https://raw.githubusercontent.com/github/gitignore/main/Python.gitignore
|
||||
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Object files
|
||||
*.o
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
|
||||
# Linker output
|
||||
*.ilk
|
||||
*.map
|
||||
*.exp
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Libraries
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
*.lo
|
||||
|
||||
# Shared objects (inc. Windows DLLs)
|
||||
*.dll
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
*.i*86
|
||||
*.x86_64
|
||||
*.hex
|
||||
|
||||
# Debug files
|
||||
*.dSYM/
|
||||
*.su
|
||||
*.idb
|
||||
*.pdb
|
||||
|
||||
# Kernel Module Compile Results
|
||||
*.mod*
|
||||
*.cmd
|
||||
.tmp_versions/
|
||||
modules.order
|
||||
Module.symvers
|
||||
Mkfile.old
|
||||
dkms.conf
|
||||
|
||||
|
||||
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# C extensions
|
||||
*.so
|
||||
|
||||
# Distribution / packaging
|
||||
.Python
|
||||
build/
|
||||
develop-eggs/
|
||||
dist/
|
||||
downloads/
|
||||
eggs/
|
||||
.eggs/
|
||||
lib/
|
||||
lib64/
|
||||
parts/
|
||||
sdist/
|
||||
var/
|
||||
wheels/
|
||||
share/python-wheels/
|
||||
*.egg-info/
|
||||
.installed.cfg
|
||||
*.egg
|
||||
MANIFEST
|
||||
|
||||
# PyInstaller
|
||||
# Usually these files are written by a python script from a template
|
||||
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
||||
*.manifest
|
||||
*.spec
|
||||
|
||||
# Installer logs
|
||||
pip-log.txt
|
||||
pip-delete-this-directory.txt
|
||||
|
||||
# Unit test / coverage reports
|
||||
htmlcov/
|
||||
.tox/
|
||||
.nox/
|
||||
.coverage
|
||||
.coverage.*
|
||||
.cache
|
||||
nosetests.xml
|
||||
coverage.xml
|
||||
*.cover
|
||||
*.py,cover
|
||||
.hypothesis/
|
||||
.pytest_cache/
|
||||
cover/
|
||||
|
||||
# Translations
|
||||
*.mo
|
||||
*.pot
|
||||
|
||||
# Django stuff:
|
||||
*.log
|
||||
local_settings.py
|
||||
db.sqlite3
|
||||
db.sqlite3-journal
|
||||
|
||||
# Flask stuff:
|
||||
instance/
|
||||
.webassets-cache
|
||||
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
|
||||
# Jupyter Notebook
|
||||
.ipynb_checkpoints
|
||||
|
||||
# IPython
|
||||
profile_default/
|
||||
ipython_config.py
|
||||
|
||||
# pyenv
|
||||
# For a library or package, you might want to ignore these files since the code is
|
||||
# intended to run in multiple environments; otherwise, check them in:
|
||||
# .python-version
|
||||
|
||||
# pipenv
|
||||
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
||||
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
||||
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
||||
# install all needed dependencies.
|
||||
#Pipfile.lock
|
||||
|
||||
# poetry
|
||||
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
||||
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
||||
# commonly ignored for libraries.
|
||||
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
||||
#poetry.lock
|
||||
|
||||
# pdm
|
||||
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
||||
#pdm.lock
|
||||
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
||||
# in version control.
|
||||
# https://pdm.fming.dev/#use-with-ide
|
||||
.pdm.toml
|
||||
|
||||
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
||||
__pypackages__/
|
||||
|
||||
# Celery stuff
|
||||
celerybeat-schedule
|
||||
celerybeat.pid
|
||||
|
||||
# SageMath parsed files
|
||||
*.sage.py
|
||||
|
||||
# Environments
|
||||
.env
|
||||
.venv
|
||||
env/
|
||||
venv/
|
||||
ENV/
|
||||
env.bak/
|
||||
venv.bak/
|
||||
|
||||
# Spyder project settings
|
||||
.spyderproject
|
||||
.spyproject
|
||||
|
||||
# Rope project settings
|
||||
.ropeproject
|
||||
|
||||
# mkdocs documentation
|
||||
/site
|
||||
|
||||
# mypy
|
||||
.mypy_cache/
|
||||
.dmypy.json
|
||||
dmypy.json
|
||||
|
||||
# Pyre type checker
|
||||
.pyre/
|
||||
|
||||
# pytype static type analyzer
|
||||
.pytype/
|
||||
|
||||
# Cython debug symbols
|
||||
cython_debug/
|
||||
|
||||
|
||||
.vscode/
|
||||
|
||||
@@ -1,12 +0,0 @@
|
||||
; DO NOT EDIT (unless you know what you are doing)
|
||||
;
|
||||
; This subdirectory is a git "subrepo", and this file is maintained by the
|
||||
; git-subrepo command. See https://github.com/git-commands/git-subrepo#readme
|
||||
;
|
||||
[subrepo]
|
||||
remote = git@github.com:Decompollaborate/rabbitizer.git
|
||||
branch = develop
|
||||
commit = 72bf240f468d30286888212b5fb773fae94340f6
|
||||
parent = fa84f928c510147d6083b979efb28a5a07eefe10
|
||||
method = merge
|
||||
cmdver = 0.4.3
|
||||
@@ -1,21 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 Decompollaborate
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user