build: Continue with the migration to scc - scc - simple c99 compiler
HTML git clone git://git.simple-cc.org/scc
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 1e0f1124de63a6ef2e30314484fca2e2f60da4ad
DIR parent 783ac157e892d418efb54c7c3b4e76e2330f65d9
HTML Author: Roberto E. Vargas Caballero <k0ga@shike2.net>
Date: Tue, 12 May 2026 12:55:38 +0200
build: Continue with the migration to scc
This commits continue with the migration to use scc for the libc
and for the tests. It also means removing the gcc-scc tool that
used to be used to test the libc before scc was able to complie it.
In case of being needed it can be recovered from the history.
Diffstat:
M src/libc/Makefile | 7 ++-----
D src/libc/gcc-scc.sh | 89 -------------------------------
M src/libc/rules.mk | 14 +++-----------
M tests/cc/error/Makefile | 7 ++++---
M tests/cc/execute/Makefile | 4 +++-
M tests/libc/execute/Makefile | 3 ---
6 files changed, 12 insertions(+), 112 deletions(-)
---
DIR diff --git a/src/libc/Makefile b/src/libc/Makefile
@@ -24,8 +24,5 @@ all: $(DIRS)
+@$(MAKE) $(TARGET)
$(LIBC): $(OBJS)
- $(AR) $(PROJ_ARFLAGS) $(LIBC) $?
- $(RL) $(PROJ_RLFLAGS) $(LIBC)
-
-$(BINDIR)/gcc-scc: gcc-scc.sh
- cp gcc-scc.sh $@
+ $(AR) $(ARFLAGS) $(LIBC) $?
+ $(RL) $(RLFLAGS) $(LIBC)
DIR diff --git a/src/libc/gcc-scc.sh b/src/libc/gcc-scc.sh
@@ -1,89 +0,0 @@
-#!/bin/sh
-
-set -e
-
-while getopts gr:O:a:s:o:c o
-do
- case $o in
- g)
- g=-g
- ;;
- O)
- opti=-O1
- ;;
- r)
- root=$OPTARG
- ;;
- a)
- abi=$OPTARG
- ;;
- s)
- sys=$OPTARG
- ;;
- o)
- out=$OPTARG
- ;;
- c)
- onlycc=1
- ;;
- *)
- echo >&2 "usage: gcc-scc [-o outfile] [-c] [-r root] [-a abi] [-s sys] file"
- exit 1
- ;;
- esac
-done
-shift $((OPTIND-1))
-
-sys=${sys:-`uname | tr 'A-Z' 'a-z'`}
-abi=${abi:-amd64}
-out=${out:-a.out}
-root=${root:-${SCCPREFIX:-`dirname $0`/..}}
-inc=$root/include/scc
-arch_inc=$inc/bits/$abi
-sys_inc=$inc/bits/$sys
-sys_arch_inc=$inc/bits/$sys/$abi
-lib=$root/lib/scc/${abi}-${sys}
-crt=$root/lib/scc/${abi}-${sys}/crt.o
-obj=${1%.c}.o
-cc=${CROSS_COMPILE}cc
-ld=${CROSS_COMPILE}ld
-
-case `uname` in
-OpenBSD)
- nopie=-no-pie
- ;;
-esac
-
-includes="-nostdinc -I$inc -I$arch_inc -I$sys_inc -I$sys_arch_inc"
-cflags="$opti -std=c99 -w -fno-pie -fno-stack-protector -ffreestanding -static"
-ldflags="-z nodefaultlib -static -L$lib"
-
-if test ${onlycc:-0} -eq 1
-then
- $cc $cflags $includes -c "$@"
-else
- for i
- do
- case $i in
- *.c)
- $cc $g $cflags $includes -c "$i"
- ;;
- esac
- done
-
- # convert *.c args to *.o while correctly maintaing IFS chars
- for i
- do
- shift
- case $i in
- *.c)
- set -- "$@" "${i%c}o"
- ;;
- *)
- set -- "$@" "$i"
- ;;
- esac
- done
-
- $ld $g $ldflags $nopie $crt "$@" -lc -lcrt -o "$out"
-fi
DIR diff --git a/src/libc/rules.mk b/src/libc/rules.mk
@@ -1,12 +1,4 @@
-CPPINCLUDES =\
- -I$(INCDIR)\
- -I$(INCDIR)/bits/$(SYS)\
- -I$(INCDIR)/bits/$(ARCH)\
- -I$(INCDIR)/bits/$(SYS)/$(ARCH)\
-
-MORE_ARFLAGS = -u
-MORE_CFLAGS = $(TOOL_LIBC_CFLAGS) $(NOPIE_CFLAGS)
-CC=$(SCC)
+CC = $(SCC) -t $(SYS) -a $(ARCH)
AR=$(SCC_AR)
RANLIB=$(SCC_RANLIB)
@@ -23,7 +15,7 @@ _sys_errlist.c: $(SYSERRNO)
../../mkerrstr $(SYSERRNO)
_sys_errlist.$O: _sys_errlist.c
- $(CC) $(PROJ_CFLAGS) -c -o $@ _sys_errlist.c
+ $(CC) $(CFLAGS) -c -o $@ _sys_errlist.c
$(CRT): crt.$O
cp crt.$O $@
@@ -34,7 +26,7 @@ clean-libc: FORCE
rm -f *.5? *.6? *.7? *.8? *.z *.q
.c.$O:
- $(CC) $(PROJ_CFLAGS) -o $@ -c $<
+ $(CC) $(CFLAGS) -o $@ -c $<
.s.$O:
$(AS) $(PROJ_ASFLAGS) $< -o $@
DIR diff --git a/tests/cc/error/Makefile b/tests/cc/error/Makefile
@@ -1,8 +1,9 @@
.POSIX:
-ROOT=../../..
-SCCPREFIX=$(ROOT)
-CC=$(EXEC) $(ROOT)/bin/scc cc
+PROJECTDIR = ../../..
+include $(PROJECTDIR)/scripts/rules.mk
+
+CC=$(SCC)
all:
@CC='$(CC)' ./runtests.sh scc-tests.lst
DIR diff --git a/tests/cc/execute/Makefile b/tests/cc/execute/Makefile
@@ -3,8 +3,10 @@
PROJECTDIR = ../../..
include $(PROJECTDIR)/scripts/rules.mk
-CC=$(SCC)
+CC=$(BINDIR)/scc
PROJ_CFLAGS = $(CFLAGS)
+PROJ_LDFLAGS= $(LDFLAGS)
+PROJ_LDLIBS =
all:
@CC='$(CC)' ./runtests.sh scc-tests.lst
DIR diff --git a/tests/libc/execute/Makefile b/tests/libc/execute/Makefile
@@ -7,9 +7,6 @@ PROJ_CFLAGS = $(CFLAGS)
PROJ_LDFLAGS = $(LDFLAGS)
CC=$(SCC)
-# Uncomment following line to use gcc to test the libc
-# CC = $(BINDIR)/gcc-scc
-
all:
@CC='$(CC)' \
CFLAGS='$(PROJ_CFLAGS)' \