forked from tkchia/gcc-ia16
-
Notifications
You must be signed in to change notification settings - Fork 0
Fork of Lambertsen & Jenner (& al.)'s IA-16 (Intel 16-bit x86) port of GNU compilers ― added far pointers & more • use https://github.com/tkchia/build-ia16 to build • Ubuntu binaries at https://launchpad.net/%7Etkchia/+archive/ubuntu/build-ia16/ • DJGPP/MS-DOS binaries at https://gitlab.com/tkchia/build-ia16/-/releases • mirror of https://gitlab.co
License
Oichkatzelesfrettschen/gcc-ia16-8088
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This directory contains the GNU Compiler Collection (GCC). The GNU Compiler Collection is free software. See the files whose names start with COPYING for copying permission. The manuals, and some of the runtime libraries, are under different terms; see the individual source files for details. The directory INSTALL contains copies of the installation information as HTML and plain text. The source of this information is gcc/doc/install.texi. The installation information includes details of what is included in the GCC sources and what files GCC installs. See the file gcc/doc/gcc.texi (together with other files that it includes) for usage and porting information. An online readable version of the manual is in the files gcc/doc/gcc.info*. See http://gcc.gnu.org/bugs/ for how to report bugs usefully. Copyright years on GCC source files may be listed using range notation, e.g., 1987-2012, indicating that every year in the range, inclusive, is a copyrightable year that could otherwise be listed individually. ## Building the IA16 Cross Compiler A convenience setup script is provided to install toolchains and supporting packages required to build GCC for the `ia16-elf` target. Run the script with root privileges: ```bash sudo ./setup.sh ``` After dependencies are installed you can build and smoke test the compiler using the workflow in `.github/workflows/build.yml` or manually: ```bash mkdir build && cd build ../configure --target=ia16-elf --enable-languages=c,c++ --disable-nls \ --disable-multilib --with-newlib --disable-libssp --disable-libquadmath make -j$(nproc) make install DESTDIR=$PWD/../install export PATH=$PWD/../install/usr/local/bin:$PATH ../scripts/test-ia16-hello.sh ``` The test script builds a small "hello world" program and verifies that the resulting binary is for the 8086 architecture. The CI workflow builds twice using a matrix of host triples (`x86_64-linux-gnu` and `i686-linux-gnu`) to ensure both 64-bit and 32-bit environments can compile the toolchain. ## Development Utilities Clang tooling is configured for consistency. `.clang-format` and `.clang-tidy` live in the repository root. The sample program under `samples/` can be built with Meson or the provided `mkfile`, both of which invoke `clang-tidy` automatically: ```bash meson setup build && ninja -C build clang-tidy make -C samples -f mkfile ``` Pre-commit hooks use these tools to keep formatting and static analysis results up to date. After running `setup.sh`, install the git hooks with: ```bash pre-commit install ``` A local pre-commit cache resides in `.pre-commit`. The setup script exports `PRE_COMMIT_HOME` to this directory so hooks reuse the cached virtual environments. Additional clang-tidy configurations live under `clang-tidy/`. The `c23` and `cpp17` subdirectories contain `.clang-tidy` files tuned for C23 and C++17 code bases respectively. ### Environment baseline The `setup.sh` script installs an extensive suite of build and development packages. Key components include Meson, Ninja, CMake, m4, GCC and Clang/LLVM along with their related tooling. Debugging and profiling utilities such as GDB, LLDB and Valgrind are provided, as well as fuzzing frameworks like AFL++ where available. The script also configures pre-commit hooks so that formatting and static analysis tools run consistently across environments. Failed package installs are recorded in `/tmp/setup-failures.log`. The script attempts to fall back to `pip` for Python-related packages if the corresponding `apt` installation does not succeed, allowing the setup to continue even when some packages are unavailable.
About
Fork of Lambertsen & Jenner (& al.)'s IA-16 (Intel 16-bit x86) port of GNU compilers ― added far pointers & more • use https://github.com/tkchia/build-ia16 to build • Ubuntu binaries at https://launchpad.net/%7Etkchia/+archive/ubuntu/build-ia16/ • DJGPP/MS-DOS binaries at https://gitlab.com/tkchia/build-ia16/-/releases • mirror of https://gitlab.co
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- C 38.5%
- C++ 15.4%
- Ada 14.7%
- Java 13.5%
- Go 4.8%
- GCC Machine Description 3.3%
- Other 9.8%