Full libc port

Build the rest of the libc, including assembly implementations.
This commit is contained in:
Ehmry - 2019-07-01 11:36:59 +02:00
parent e20d19ebc9
commit 22fc70a613
19 changed files with 2414 additions and 2453 deletions

View File

@ -240,6 +240,8 @@ installPhase() {
cp -r include/xlocale $include/
ln -s sys/poll.h $include/poll.h
rm -r include # Don't need this anymore
cp -rv . $source

View File

@ -2,7 +2,13 @@ TARGET_NAME = libc
LIBS += vfs base ld
include_rules
include contrib.tup
SOURCE_LINK = port-source
INCLUDE_LINK = port-include
: |> $(NIX_BUILD) $(REP_DIR)/ports \
-A libc.include -A libc.source -o port \
|> $(SOURCE_LINK) $(INCLUDE_LINK) {port}
DEFINES += -D__FreeBSD__=12
DEFINES += -D__GENODE__
@ -10,30 +16,41 @@ DEFINES += -D__NO_TLS
DEFINES += -DPIC
DEFINES += -fno-builtin-sin -fno-builtin-cos -fno-builtin-sinf -fno-builtin-cosf
CFLAGS += -std=c99 -Dasm=__asm__
#
# FreeBSD headers use the C99 restrict keyword
#
CXXFLAGS += -Drestrict=__restrict
LIBC_DIR = libc-source
LIBC_DIR = $(SOURCE_LINK)
ifeq (@(TUP_ARCH),x86_64)
INCLUDES += -Ilibc-include/spec/x86_64
INCLUDES += -Ilibc-include/spec/x86
ifeq (@(TUP_ARCH),i386)
INCLUDES += -I$(INCLUDE_LINK)/spec/x86_32
INCLUDES += -I$(INCLUDE_LINK)/spec/x86
INCLUDES += -I./include/spec/x86_64
endif
ifeq (@(TUP_ARCH),arm_v8)
INCLUDES += -Ilibc-include/spec/arm_64
ifeq (@(TUP_ARCH),x86_64)
INCLUDES += -I$(INCLUDE_LINK)/spec/x86_64
INCLUDES += -I$(INCLUDE_LINK)/spec/x86
INCLUDES += -I./include/spec/x86_64
endif
ifeq (@(TUP_ARCH),arm64)
INCLUDES += -I$(INCLUDE_LINK)/spec/arm_64
INCLUDES += -I./include/spec/arm_64
endif
INCLUDES += -Ilibc-include
INCLUDES += -I$(INCLUDE_LINK)
INCLUDES += -I./
INCLUDES += -I$(LIBC_DIR)/lib/libc/include
INCLUDES += -I$(LIBC_DIR)/lib/libc/locale
INCLUDES += -I$(LIBC_DIR)/sys
INCLUDES += -I$(SOURCE_LINK)/contrib/gdtoa
INCLUDES += -I$(SOURCE_LINK)/lib/libc/resolv
INCLUDES += -I$(SOURCE_LINK)/contrib/tzcode/stdtime
# needed for base/internal/unmanaged_singleton.h
INCLUDES += -I$(BASE_DIR)/src/include
@ -41,6 +58,23 @@ INCLUDES += -I$(BASE_DIR)/sys
SRC_C += lib/libc/compat-43/*.c
run ./port_rules.sh $(SOURCE_LINK) common.files
ifeq (@(TUP_ARCH),i386)
INCLUDES += -I$(SOURCE_LINK)/sys/amd64/include
run ./port_rules.sh $(SOURCE_LINK) i386.files x86.files
endif
ifeq (@(TUP_ARCH),x86_64)
INCLUDES += -I$(SOURCE_LINK)/sys/amd64/include
run ./port_rules.sh $(SOURCE_LINK) amd64.files x86.files
endif
ifeq (@(TUP_ARCH),arm64)
INCLUDES += -I$(SOURCE_LINK)/sys/arm64/include
run ./port_rules.sh $(SOURCE_LINK) aarch64.files arm64.files
endif
: foreach $(SRC_C) |> !cc |> %f.o {obj}
: foreach *.cc | $(LIBC_DIR) |> !cxx |> %B.o {obj}
@ -55,11 +89,11 @@ include &(BIN_RULES)
: $(REP_DIR)/lib/symbols/libc |> !abi_stub |>
SED_FLAGS += -e "s|@includedir@|`readlink libc-include`|"
SED_FLAGS += -e "s|@includedir@|`readlink $(INCLUDE_LINK)`|"
#SED_FLAGS_arm64 += -e 's|@SPEC_INCLUDES@|-I${includedir}/spec/arm_64|'
#SED_FLAGS_i386 += -e 's|@SPEC_INCLUDES@|-I${includedir}/spec/x86_32 -I${includedir}/spec/x86|'
SED_FLAGS += -e 's|@SPEC_INCLUDES@|-I${includedir}/spec/x86_64 -I${includedir}/spec/x86|'
: libc.pc.in | libc-include |> !sed_pkgconfig_file |>
: libc.pc.in | {port} |> !sed_pkgconfig_file |>

View File

@ -0,0 +1,13 @@
lib/libc/aarch64/SYS.h
lib/libc/aarch64/_fpmath.h
lib/libc/aarch64/gen/fabs.S
lib/libc/aarch64/gen/flt_rounds.c
lib/libc/aarch64/gen/_set_tp.c
lib/libc/aarch64/gen/infinity.c
lib/libc/aarch64/gen/_ctx_start.S
lib/libc/aarch64/gd_qnan.h
lib/libc/aarch64/Symbol.map
lib/libc/aarch64/sys/cerror.S
lib/libc/aarch64/arith.h
lib/msun/aarch64/fenv.c
lib/msun/aarch64/fenv.h

View File

@ -0,0 +1,149 @@
lib/libc/amd64/string/strcmp.S
lib/libc/amd64/string/bzero.c
lib/libc/amd64/string/memcpy.S
lib/libc/amd64/string/memset.S
lib/libc/amd64/string/memmove.S
lib/libc/amd64/string/bcmp.S
lib/libc/amd64/string/memcmp.S
lib/libc/amd64/string/bcopy.c
lib/libc/amd64/string/strcpy.c
lib/libc/amd64/string/stpcpy.S
lib/libc/amd64/string/strcat.S
lib/libc/amd64/stdlib/ldiv.S
lib/libc/amd64/stdlib/div.S
lib/libc/amd64/stdlib/lldiv.S
lib/libc/amd64/SYS.h
lib/libc/amd64/_fpmath.h
lib/libc/amd64/gen/_setjmp.S
lib/libc/amd64/gen/fpgetmask.c
lib/libc/amd64/gen/fpsetprec.c
lib/libc/amd64/gen/fabs.S
lib/libc/amd64/gen/flt_rounds.c
lib/libc/amd64/gen/fpgetprec.c
lib/libc/amd64/gen/_set_tp.c
lib/libc/amd64/gen/fpgetround.c
lib/libc/amd64/gen/fpsetround.c
lib/libc/amd64/gen/infinity.c
lib/libc/amd64/gen/fpsetmask.c
lib/libc/amd64/gen/rfork_thread.S
lib/libc/amd64/gen/sigsetjmp.S
lib/libc/amd64/gen/fpgetsticky.c
lib/libc/amd64/gen/setjmp.S
lib/libc/amd64/gd_qnan.h
lib/libc/amd64/Symbol.map
lib/libc/amd64/sys/amd64_detect_rdfsgsbase.c
lib/libc/amd64/sys/amd64_set_fsbase.c
lib/libc/amd64/sys/cerror.S
lib/libc/amd64/sys/getcontext.S
lib/libc/amd64/sys/amd64_get_gsbase.c
lib/libc/amd64/sys/amd64_detect_rdfsgsbase.h
lib/libc/amd64/sys/amd64_set_gsbase.c
lib/libc/amd64/sys/amd64_get_fsbase.c
lib/libc/amd64/sys/vfork.S
lib/libc/amd64/arith.h
lib/msun/amd64/s_lrintf.S
lib/msun/amd64/s_lrint.S
lib/msun/amd64/e_fmodl.S
lib/msun/amd64/s_llrintl.S
lib/msun/amd64/fenv.c
lib/msun/amd64/s_lrintl.S
lib/msun/amd64/e_sqrtl.S
lib/msun/amd64/s_rintl.S
lib/msun/amd64/e_sqrtf.S
lib/msun/amd64/e_fmod.S
lib/msun/amd64/s_scalbnf.S
lib/msun/amd64/s_llrint.S
lib/msun/amd64/s_scalbnl.S
lib/msun/amd64/s_llrintf.S
lib/msun/amd64/e_fmodf.S
lib/msun/amd64/Symbol.map
lib/msun/amd64/e_sqrt.S
lib/msun/amd64/e_remainderl.S
lib/msun/amd64/s_logbl.S
lib/msun/amd64/s_remquof.S
lib/msun/amd64/s_remquol.S
lib/msun/amd64/s_scalbn.S
lib/msun/amd64/e_remainder.S
lib/msun/amd64/e_remainderf.S
lib/msun/amd64/s_remquo.S
sys/amd64/include/sgx.h
sys/amd64/include/specialreg.h
sys/amd64/include/pci_cfgreg.h
sys/amd64/include/_bus.h
sys/amd64/include/clock.h
sys/amd64/include/asm.h
sys/amd64/include/timerreg.h
sys/amd64/include/iodev.h
sys/amd64/include/resource.h
sys/amd64/include/trap.h
sys/amd64/include/segments.h
sys/amd64/include/pvclock.h
sys/amd64/include/ucontext.h
sys/amd64/include/tss.h
sys/amd64/include/ppireg.h
sys/amd64/include/mp_watchdog.h
sys/amd64/include/asmacros.h
sys/amd64/include/nexusvar.h
sys/amd64/include/_limits.h
sys/amd64/include/minidump.h
sys/amd64/include/xen/xen-os.h
sys/amd64/include/xen/hypercall.h
sys/amd64/include/xen/synch_bitops.h
sys/amd64/include/_stdint.h
sys/amd64/include/pcb.h
sys/amd64/include/metadata.h
sys/amd64/include/reloc.h
sys/amd64/include/proc.h
sys/amd64/include/ptrace.h
sys/amd64/include/sgxreg.h
sys/amd64/include/vmparam.h
sys/amd64/include/md_var.h
sys/amd64/include/memdev.h
sys/amd64/include/npx.h
sys/amd64/include/pmap.h
sys/amd64/include/bus.h
sys/amd64/include/sf_buf.h
sys/amd64/include/endian.h
sys/amd64/include/pmc_mdep.h
sys/amd64/include/reg.h
sys/amd64/include/_align.h
sys/amd64/include/fpu.h
sys/amd64/include/profile.h
sys/amd64/include/pcpu.h
sys/amd64/include/sigframe.h
sys/amd64/include/runq.h
sys/amd64/include/sysarch.h
sys/amd64/include/pc/display.h
sys/amd64/include/float.h
sys/amd64/include/cpufunc.h
sys/amd64/include/_inttypes.h
sys/amd64/include/floatingpoint.h
sys/amd64/include/bus_dma.h
sys/amd64/include/kdb.h
sys/amd64/include/limits.h
sys/amd64/include/efi.h
sys/amd64/include/psl.h
sys/amd64/include/dump.h
sys/amd64/include/atomic.h
sys/amd64/include/ieeefp.h
sys/amd64/include/setjmp.h
sys/amd64/include/elf.h
sys/amd64/include/param.h
sys/amd64/include/stack.h
sys/amd64/include/_types.h
sys/amd64/include/intr_machdep.h
sys/amd64/include/gdb_machdep.h
sys/amd64/include/frame.h
sys/amd64/include/cputypes.h
sys/amd64/include/vm.h
sys/amd64/include/fdt.h
sys/amd64/include/signal.h
sys/amd64/include/exec.h
sys/amd64/include/ofw_machdep.h
sys/amd64/include/smp.h
sys/amd64/include/stdarg.h
sys/amd64/include/counter.h
sys/amd64/include/cpu.h
sys/amd64/include/in_cksum.h
sys/amd64/amd64/bpf_jit_machdep.h
sys/amd64/Makefile

View File

@ -0,0 +1,331 @@
lib/libc/arm/string/bcopy.S
lib/libc/arm/string/memcpy_arm.S
lib/libc/arm/string/strcmp.S
lib/libc/arm/string/bzero.S
lib/libc/arm/string/memcpy.S
lib/libc/arm/string/memcpy_xscale.S
lib/libc/arm/string/memset.S
lib/libc/arm/string/memmove.S
lib/libc/arm/string/memcmp.S
lib/libc/arm/string/ffs.S
lib/libc/arm/string/strlen.S
lib/libc/arm/string/strncmp.S
lib/libc/arm/SYS.h
lib/libc/arm/Symbol_vfp.map
lib/libc/arm/aeabi/aeabi_int_div.S
lib/libc/arm/aeabi/aeabi_vfp_float.S
lib/libc/arm/aeabi/aeabi_asm_float.S
lib/libc/arm/aeabi/aeabi_vfp_double.S
lib/libc/arm/aeabi/aeabi_atexit.c
lib/libc/arm/aeabi/aeabi_vfp.h
lib/libc/arm/aeabi/aeabi_unwind_exidx.c
lib/libc/arm/aeabi/Symbol.map
lib/libc/arm/aeabi/aeabi_float.c
lib/libc/arm/aeabi/aeabi_unwind_cpp.c
lib/libc/arm/aeabi/aeabi_double.c
lib/libc/arm/aeabi/aeabi_asm_double.S
lib/libc/arm/_fpmath.h
lib/libc/arm/softfloat/arm-gcc.h
lib/libc/arm/softfloat/softfloat.h
lib/libc/arm/softfloat/milieu.h
lib/libc/arm/gen/_setjmp.S
lib/libc/arm/gen/fpgetmask_vfp.c
lib/libc/arm/gen/__aeabi_read_tp.S
lib/libc/arm/gen/arm_initfini.c
lib/libc/arm/gen/fpgetround_vfp.c
lib/libc/arm/gen/makecontext.c
lib/libc/arm/gen/alloca.S
lib/libc/arm/gen/fpsetsticky_vfp.c
lib/libc/arm/gen/fabs.c
lib/libc/arm/gen/flt_rounds.c
lib/libc/arm/gen/fpgetsticky_vfp.c
lib/libc/arm/gen/getcontextx.c
lib/libc/arm/gen/_set_tp.c
lib/libc/arm/gen/fpsetround_vfp.c
lib/libc/arm/gen/divsi3.S
lib/libc/arm/gen/signalcontext.c
lib/libc/arm/gen/infinity.c
lib/libc/arm/gen/fpsetmask_vfp.c
lib/libc/arm/gen/_ctx_start.S
lib/libc/arm/gen/sigsetjmp.S
lib/libc/arm/gen/setjmp.S
lib/libc/arm/gd_qnan.h
lib/libc/arm/Symbol.map
lib/libc/arm/sys/cerror.S
lib/libc/arm/sys/syscall.S
lib/libc/arm/sys/__vdso_gettc.c
lib/libc/arm/sys/Ovfork.S
lib/libc/arm/arith.h
lib/msun/arm/fenv.c
lib/msun/arm/fenv-vfp.c
lib/msun/arm/fenv-mangle.h
lib/msun/arm/fenv.h
lib/msun/arm/Symbol.map
lib/msun/arm/fenv-softfp.c
sys/arm/arm/inckern.S
sys/arm/arm/fiq.c
sys/arm/arm/cpufunc_asm.S
sys/arm/arm/gic.h
sys/arm/arm/vm_machdep.c
sys/arm/arm/uio_machdep.c
sys/arm/arm/nexus.c
sys/arm/arm/gic.c
sys/arm/arm/in_cksum_arm.S
sys/arm/arm/unwind.c
sys/arm/arm/db_disasm.c
sys/arm/arm/pmu.c
sys/arm/arm/setstack.s
sys/arm/arm/stdatomic.c
sys/arm/arm/intr.c
sys/arm/arm/bcopy_page.S
sys/arm/arm/debug_monitor.c
sys/arm/arm/identcpu-v4.c
sys/arm/arm/copystr.S
sys/arm/arm/db_interface.c
sys/arm/arm/elf_machdep.c
sys/arm/arm/cpu_asm-v6.S
sys/arm/arm/cpufunc_asm_armv4.S
sys/arm/arm/bus_space_generic.c
sys/arm/arm/nexusvar.h
sys/arm/arm/bus_space_base.c
sys/arm/arm/mem.c
sys/arm/arm/vfp.c
sys/arm/arm/sc_machdep.c
sys/arm/arm/mpcore_timer.c
sys/arm/arm/locore-v6.S
sys/arm/arm/cpufunc_asm_arm11x6.S
sys/arm/arm/gic_common.h
sys/arm/arm/pmap-v4.c
sys/arm/arm/identcpu-v6.c
sys/arm/arm/machdep.c
sys/arm/arm/elf_note.S
sys/arm/arm/minidump_machdep.c
sys/arm/arm/swtch-v4.S
sys/arm/arm/cpufunc.c
sys/arm/arm/platform_if.m
sys/arm/arm/autoconf.c
sys/arm/arm/pl310.c
sys/arm/arm/cpufunc_asm_armv5_ec.S
sys/arm/arm/machdep_intr.c
sys/arm/arm/blockio.S
sys/arm/arm/swtch-v6.S
sys/arm/arm/cpufunc_asm_arm9.S
sys/arm/arm/undefined.c
sys/arm/arm/machdep_ptrace.c
sys/arm/arm/cpuinfo.c
sys/arm/arm/generic_timer.c
sys/arm/arm/gdb_machdep.c
sys/arm/arm/cpufunc_asm_sheeva.S
sys/arm/arm/trap-v4.c
sys/arm/arm/genassym.c
sys/arm/arm/platform_pl310_if.m
sys/arm/arm/machdep_boot.c
sys/arm/arm/cpufunc_asm_armv7.S
sys/arm/arm/swtch.S
sys/arm/arm/physmem.c
sys/arm/arm/syscall.c
sys/arm/arm/gic_fdt.c
sys/arm/arm/busdma_machdep-v6.c
sys/arm/arm/fusu.S
sys/arm/arm/gic_acpi.c
sys/arm/arm/busdma_machdep-v4.c
sys/arm/arm/exception.S
sys/arm/arm/elf_trampoline.c
sys/arm/arm/locore.S
sys/arm/arm/platform.c
sys/arm/arm/bus_space_asm_generic.S
sys/arm/arm/support.S
sys/arm/arm/machdep_kdb.c
sys/arm/arm/pmap-v6.c
sys/arm/arm/disassem.c
sys/arm/arm/ofw_machdep.c
sys/arm/arm/in_cksum.c
sys/arm/arm/mp_machdep.c
sys/arm/arm/locore-v4.S
sys/arm/arm/bcopyinout.S
sys/arm/arm/cpufunc_asm_pj4b.S
sys/arm/arm/stack_machdep.c
sys/arm/arm/hypervisor-stub.S
sys/arm/arm/trap-v6.c
sys/arm/arm/setcpsr.S
sys/arm/arm/sys_machdep.c
sys/arm/arm/mpcore_timervar.h
sys/arm/arm/pl190.c
sys/arm/arm/ptrace_machdep.c
sys/arm/arm/fiq_subr.S
sys/arm/arm/dump_machdep.c
sys/arm/arm/db_trace.c
sys/arm/arm/bcopyinout_xscale.S
sys/arm/include/pmap_var.h
sys/arm/include/undefined.h
sys/arm/include/_bus.h
sys/arm/include/atomic-v4.h
sys/arm/include/clock.h
sys/arm/include/pl310.h
sys/arm/include/asm.h
sys/arm/include/resource.h
sys/arm/include/trap.h
sys/arm/include/cpu-v4.h
sys/arm/include/swi.h
sys/arm/include/ucontext.h
sys/arm/include/physmem.h
sys/arm/include/sc_machdep.h
sys/arm/include/debug_monitor.h
sys/arm/include/asmacros.h
sys/arm/include/vfp.h
sys/arm/include/ieee.h
sys/arm/include/pte-v6.h
sys/arm/include/_limits.h
sys/arm/include/minidump.h
sys/arm/include/_stdint.h
sys/arm/include/intr.h
sys/arm/include/disassem.h
sys/arm/include/pcb.h
sys/arm/include/metadata.h
sys/arm/include/reloc.h
sys/arm/include/platformvar.h
sys/arm/include/proc.h
sys/arm/include/ptrace.h
sys/arm/include/vmparam.h
sys/arm/include/md_var.h
sys/arm/include/memdev.h
sys/arm/include/db_machdep.h
sys/arm/include/pmap-v4.h
sys/arm/include/pmap.h
sys/arm/include/pmap-v6.h
sys/arm/include/bus.h
sys/arm/include/sf_buf.h
sys/arm/include/endian.h
sys/arm/include/pmc_mdep.h
sys/arm/include/blockio.h
sys/arm/include/reg.h
sys/arm/include/_align.h
sys/arm/include/profile.h
sys/arm/include/pcpu.h
sys/arm/include/sigframe.h
sys/arm/include/runq.h
sys/arm/include/sysarch.h
sys/arm/include/float.h
sys/arm/include/cpufunc.h
sys/arm/include/vdso.h
sys/arm/include/_inttypes.h
sys/arm/include/cpuinfo.h
sys/arm/include/floatingpoint.h
sys/arm/include/bus_dma.h
sys/arm/include/kdb.h
sys/arm/include/limits.h
sys/arm/include/efi.h
sys/arm/include/psl.h
sys/arm/include/dump.h
sys/arm/include/atomic.h
sys/arm/include/ieeefp.h
sys/arm/include/setjmp.h
sys/arm/include/atags.h
sys/arm/include/elf.h
sys/arm/include/pte-v4.h
sys/arm/include/param.h
sys/arm/include/stack.h
sys/arm/include/acle-compat.h
sys/arm/include/_types.h
sys/arm/include/armreg.h
sys/arm/include/fiq.h
sys/arm/include/gdb_machdep.h
sys/arm/include/frame.h
sys/arm/include/sysreg.h
sys/arm/include/board.h
sys/arm/include/vm.h
sys/arm/include/cpu-v6.h
sys/arm/include/utrap.h
sys/arm/include/atomic-v6.h
sys/arm/include/fdt.h
sys/arm/include/platform.h
sys/arm/include/signal.h
sys/arm/include/exec.h
sys/arm/include/ofw_machdep.h
sys/arm/include/smp.h
sys/arm/include/stdarg.h
sys/arm/include/machdep.h
sys/arm/include/counter.h
sys/arm/include/cpu.h
sys/arm/include/in_cksum.h
sys/arm/ralink/std.ralink
sys/arm/ralink/rt1310_machdep.c
sys/arm/ralink/rt1310_intc.c
sys/arm/ralink/rt1310var.h
sys/arm/ralink/if_fv.c
sys/arm/ralink/if_fvreg.h
sys/arm/ralink/rt1310reg.h
sys/arm/ralink/rt1310_gpio.c
sys/arm/ralink/files.ralink
sys/arm/ralink/rt1310_timer.c
sys/arm/conf/EFIKA_MX
sys/arm/conf/RK3188
sys/arm/conf/std.arm
sys/arm/conf/APALIS-IMX6
sys/arm/conf/NOTES
sys/arm/conf/RPI2
sys/arm/conf/COLIBRI-VF50
sys/arm/conf/EXYNOS5250
sys/arm/conf/BEAGLEBONE
sys/arm/conf/PANDABOARD.hints
sys/arm/conf/CHROMEBOOK
sys/arm/conf/AML8726
sys/arm/conf/CHROMEBOOK-PEACH-PIT.hints
sys/arm/conf/DB-78XXX
sys/arm/conf/ARNDALE
sys/arm/conf/std.armv6
sys/arm/conf/VYBRID
sys/arm/conf/RT1310
sys/arm/conf/ARNDALE-OCTA
sys/arm/conf/std.armv7
sys/arm/conf/COSMIC
sys/arm/conf/DOCKSTAR
sys/arm/conf/RADXA-LITE
sys/arm/conf/VSATV102
sys/arm/conf/DEFAULTS
sys/arm/conf/TS7800
sys/arm/conf/SOCFPGA
sys/arm/conf/SOCKIT
sys/arm/conf/SAM9G20EK.hints
sys/arm/conf/ALPINE
sys/arm/conf/CHROMEBOOK-SNOW
sys/arm/conf/EA3250.hints
sys/arm/conf/ODROIDC1
sys/arm/conf/DB-88F5XXX
sys/arm/conf/ARMADAXP
sys/arm/conf/ZEDBOARD
sys/arm/conf/EXYNOS5.common
sys/arm/conf/RADXA
sys/arm/conf/IMX53
sys/arm/conf/mach-types
sys/arm/conf/DB-88F6XXX
sys/arm/conf/ARMADA38X
sys/arm/conf/CHROMEBOOK-SPRING
sys/arm/conf/IMX6
sys/arm/conf/JETSON-TK1
sys/arm/conf/CHROMEBOOK-PEACH-PIT
sys/arm/conf/genboardid.awk
sys/arm/conf/RPI-B
sys/arm/conf/SHEEVAPLUG
sys/arm/conf/SOCKIT-BERI
sys/arm/conf/CHROMEBOOK.hints
sys/arm/conf/QUARTZ
sys/arm/conf/SOCDK
sys/arm/conf/VERSATILEPB
sys/arm/conf/PANDABOARD
sys/arm/conf/TEGRA124
sys/arm/conf/GENERIC
sys/arm/conf/YYHD18
sys/arm/conf/DREAMPLUG-1001
sys/arm/conf/EXYNOS5420
sys/arm/conf/Makefile
sys/arm/conf/GENERIC-MMCCAM
sys/libkern/arm/ldivmod_helper.c
sys/libkern/arm/memcpy.S
sys/libkern/arm/aeabi_unwind.c
sys/libkern/arm/memset.S
sys/libkern/arm/ldivmod.S
sys/libkern/arm/memclr.S
sys/libkern/arm/divsi3.S
sys/libkern/arm/ffs.S
sys/libkern/arm/muldi3.c

View File

@ -0,0 +1,68 @@
sys/arm64/include/pci_cfgreg.h
sys/arm64/include/_bus.h
sys/arm64/include/clock.h
sys/arm64/include/asm.h
sys/arm64/include/iodev.h
sys/arm64/include/resource.h
sys/arm64/include/trap.h
sys/arm64/include/ucontext.h
sys/arm64/include/debug_monitor.h
sys/arm64/include/vfp.h
sys/arm64/include/_limits.h
sys/arm64/include/minidump.h
sys/arm64/include/_stdint.h
sys/arm64/include/intr.h
sys/arm64/include/disassem.h
sys/arm64/include/pcb.h
sys/arm64/include/metadata.h
sys/arm64/include/reloc.h
sys/arm64/include/proc.h
sys/arm64/include/ptrace.h
sys/arm64/include/vmparam.h
sys/arm64/include/ifunc.h
sys/arm64/include/md_var.h
sys/arm64/include/memdev.h
sys/arm64/include/bus.h
sys/arm64/include/sf_buf.h
sys/arm64/include/endian.h
sys/arm64/include/pmc_mdep.h
sys/arm64/include/reg.h
sys/arm64/include/_align.h
sys/arm64/include/fpu.h
sys/arm64/include/profile.h
sys/arm64/include/pcpu.h
sys/arm64/include/runq.h
sys/arm64/include/sysarch.h
sys/arm64/include/float.h
sys/arm64/include/_inttypes.h
sys/arm64/include/floatingpoint.h
sys/arm64/include/bus_dma.h
sys/arm64/include/kdb.h
sys/arm64/include/efi.h
sys/arm64/include/psl.h
sys/arm64/include/dump.h
sys/arm64/include/atomic.h
sys/arm64/include/ieeefp.h
sys/arm64/include/setjmp.h
sys/arm64/include/elf.h
sys/arm64/include/param.h
sys/arm64/include/hypervisor.h
sys/arm64/include/stack.h
sys/arm64/include/_types.h
sys/arm64/include/armreg.h
sys/arm64/include/frame.h
sys/arm64/include/pte.h
sys/arm64/include/vm.h
sys/arm64/include/bus_dma_impl.h
sys/arm64/include/signal.h
sys/arm64/include/exec.h
sys/arm64/include/ofw_machdep.h
sys/arm64/include/smp.h
sys/arm64/include/stdarg.h
sys/arm64/include/machdep.h
sys/arm64/include/counter.h
sys/arm64/arm64/gic_v3_var.h
sys/arm64/arm64/vfp.c
sys/arm64/arm64/memcpy.S
sys/arm64/arm64/memmove.S
sys/arm64/arm64/gic_v3_reg.h

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -226,7 +226,5 @@ int __attribute__((weak)) madvise(void *addr, size_t length, int advice)
return -1;
}
const struct res_sym __p_type_syms[] = { };
} /* extern "C" */

View File

@ -1,21 +0,0 @@
/*
* \brief C-library back end
* \author Christian Prochaska
* \date 2010-05-16
*/
/*
* Copyright (C) 2010-2017 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU Affero General Public License version 3.
*/
#include <base/log.h>
extern "C" const char *gai_strerror(int errcode)
{
static const char *result = "gai_strerror called, not yet implemented!";
Genode::log(__func__, ": ", result);
return result;
}

View File

@ -0,0 +1,268 @@
lib/libc/i386/string/bcopy.S
lib/libc/i386/string/strcmp.S
lib/libc/i386/string/bzero.S
lib/libc/i386/string/memchr.S
lib/libc/i386/string/wcscmp.S
lib/libc/i386/string/wcschr.S
lib/libc/i386/string/strcpy.S
lib/libc/i386/string/wcslen.S
lib/libc/i386/string/swab.S
lib/libc/i386/string/memcpy.S
lib/libc/i386/string/strrchr.S
lib/libc/i386/string/memset.S
lib/libc/i386/string/memmove.S
lib/libc/i386/string/bcmp.S
lib/libc/i386/string/memcmp.S
lib/libc/i386/string/strchr.S
lib/libc/i386/string/ffs.S
lib/libc/i386/string/wmemchr.S
lib/libc/i386/string/strncmp.S
lib/libc/i386/string/strcat.S
lib/libc/i386/stdlib/ldiv.S
lib/libc/i386/stdlib/div.S
lib/libc/i386/SYS.h
lib/libc/i386/_fpmath.h
lib/libc/i386/gen/_setjmp.S
lib/libc/i386/gen/fabs.S
lib/libc/i386/gen/flt_rounds.c
lib/libc/i386/gen/_set_tp.c
lib/libc/i386/gen/infinity.c
lib/libc/i386/gen/_ctx_start.S
lib/libc/i386/gen/rfork_thread.S
lib/libc/i386/gen/sigsetjmp.S
lib/libc/i386/gen/setjmp.S
lib/libc/i386/gd_qnan.h
lib/libc/i386/Symbol.map
lib/libc/i386/sys/i386_set_ldt.c
lib/libc/i386/sys/i386_set_watch.c
lib/libc/i386/sys/i386_clr_watch.c
lib/libc/i386/sys/i386_get_fsbase.c
lib/libc/i386/sys/i386_set_ioperm.c
lib/libc/i386/sys/i386_get_gsbase.c
lib/libc/i386/sys/i386_set_gsbase.c
lib/libc/i386/sys/cerror.S
lib/libc/i386/sys/syscall.S
lib/libc/i386/sys/i386_set_fsbase.c
lib/libc/i386/sys/i386_get_ioperm.c
lib/libc/i386/sys/getcontext.S
lib/libc/i386/sys/Ovfork.S
lib/libc/i386/sys/i386_get_ldt.c
lib/libc/i386/sys/i386_vm86.c
lib/libc/i386/arith.h
sys/i386/linux/linux_syscalls.c
sys/i386/linux/linux_proto.h
sys/i386/linux/linux_machdep.c
sys/i386/linux/linux_systrace_args.c
sys/i386/linux/syscalls.master
sys/i386/linux/linux_syscall.h
sys/i386/linux/linux.h
sys/i386/linux/linux_sysvec.c
sys/i386/linux/imgact_linux.c
sys/i386/linux/linux_locore.s
sys/i386/linux/linux_sysent.c
sys/i386/linux/syscalls.conf
sys/i386/linux/linux_dummy.c
sys/i386/linux/linux_copyout.c
sys/i386/linux/linux_genassym.c
sys/i386/linux/Makefile
sys/i386/include/specialreg.h
sys/i386/include/pci_cfgreg.h
sys/i386/include/_bus.h
sys/i386/include/elan_mmcr.h
sys/i386/include/clock.h
sys/i386/include/asm.h
sys/i386/include/pcb_ext.h
sys/i386/include/timerreg.h
sys/i386/include/iodev.h
sys/i386/include/resource.h
sys/i386/include/trap.h
sys/i386/include/segments.h
sys/i386/include/pvclock.h
sys/i386/include/ucontext.h
sys/i386/include/tss.h
sys/i386/include/speaker.h
sys/i386/include/ppireg.h
sys/i386/include/mp_watchdog.h
sys/i386/include/asmacros.h
sys/i386/include/bootinfo.h
sys/i386/include/nexusvar.h
sys/i386/include/_limits.h
sys/i386/include/minidump.h
sys/i386/include/xen/xen-os.h
sys/i386/include/xen/hypercall.h
sys/i386/include/xen/synch_bitops.h
sys/i386/include/smapi.h
sys/i386/include/_stdint.h
sys/i386/include/acpica_machdep.h
sys/i386/include/pcb.h
sys/i386/include/metadata.h
sys/i386/include/reloc.h
sys/i386/include/proc.h
sys/i386/include/ptrace.h
sys/i386/include/ioctl_meteor.h
sys/i386/include/vmparam.h
sys/i386/include/md_var.h
sys/i386/include/memdev.h
sys/i386/include/db_machdep.h
sys/i386/include/ioctl_bt848.h
sys/i386/include/npx.h
sys/i386/include/pmap.h
sys/i386/include/bus.h
sys/i386/include/sf_buf.h
sys/i386/include/endian.h
sys/i386/include/pmc_mdep.h
sys/i386/include/reg.h
sys/i386/include/_align.h
sys/i386/include/profile.h
sys/i386/include/pcpu.h
sys/i386/include/sigframe.h
sys/i386/include/cserial.h
sys/i386/include/runq.h
sys/i386/include/sysarch.h
sys/i386/include/pc/display.h
sys/i386/include/pc/bios.h
sys/i386/include/apm_bios.h
sys/i386/include/float.h
sys/i386/include/cpufunc.h
sys/i386/include/vm86.h
sys/i386/include/_inttypes.h
sys/i386/include/floatingpoint.h
sys/i386/include/bus_dma.h
sys/i386/include/kdb.h
sys/i386/include/limits.h
sys/i386/include/efi.h
sys/i386/include/psl.h
sys/i386/include/dump.h
sys/i386/include/atomic.h
sys/i386/include/if_wl_wavelan.h
sys/i386/include/ieeefp.h
sys/i386/include/setjmp.h
sys/i386/include/elf.h
sys/i386/include/param.h
sys/i386/include/stack.h
sys/i386/include/_types.h
sys/i386/include/perfmon.h
sys/i386/include/intr_machdep.h
sys/i386/include/gdb_machdep.h
sys/i386/include/frame.h
sys/i386/include/cputypes.h
sys/i386/include/vm.h
sys/i386/include/fdt.h
sys/i386/include/apm_segments.h
sys/i386/include/signal.h
sys/i386/include/exec.h
sys/i386/include/ofw_machdep.h
sys/i386/include/smp.h
sys/i386/include/stdarg.h
sys/i386/include/counter.h
sys/i386/include/cpu.h
sys/i386/include/in_cksum.h
sys/i386/ibcs2/ibcs2_xenix_syscall.h
sys/i386/ibcs2/ibcs2_stropts.h
sys/i386/ibcs2/ibcs2_mount.h
sys/i386/ibcs2/ibcs2_errno.h
sys/i386/ibcs2/syscalls.master
sys/i386/ibcs2/ibcs2_statfs.h
sys/i386/ibcs2/imgact_coff.c
sys/i386/ibcs2/ibcs2_isc.c
sys/i386/ibcs2/ibcs2_util.h
sys/i386/ibcs2/ibcs2_sysi86.c
sys/i386/ibcs2/ibcs2_signal.h
sys/i386/ibcs2/ibcs2_unistd.h
sys/i386/ibcs2/syscalls.isc.conf
sys/i386/ibcs2/ibcs2_termios.h
sys/i386/ibcs2/ibcs2_fcntl.h
sys/i386/ibcs2/ibcs2_util.c
sys/i386/ibcs2/ibcs2_misc.c
sys/i386/ibcs2/ibcs2_proto.h
sys/i386/ibcs2/ibcs2_ioctl.h
sys/i386/ibcs2/ibcs2_utime.h
sys/i386/ibcs2/syscalls.xenix
sys/i386/ibcs2/ibcs2_msg.c
sys/i386/ibcs2/ibcs2_sysvec.c
sys/i386/ibcs2/ibcs2_socksys.h
sys/i386/ibcs2/ibcs2_stat.h
sys/i386/ibcs2/ibcs2_errno.c
sys/i386/ibcs2/ibcs2_utsname.h
sys/i386/ibcs2/ibcs2_xenix_sysent.c
sys/i386/ibcs2/ibcs2_xenix.h
sys/i386/ibcs2/ibcs2_sysent.c
sys/i386/ibcs2/syscalls.xenix.conf
sys/i386/ibcs2/coff.h
sys/i386/ibcs2/ibcs2_ipc.h
sys/i386/ibcs2/ibcs2_types.h
sys/i386/ibcs2/syscalls.conf
sys/i386/ibcs2/syscalls.isc
sys/i386/ibcs2/ibcs2_ipc.c
sys/i386/ibcs2/ibcs2_fcntl.c
sys/i386/ibcs2/ibcs2_ustat.h
sys/i386/ibcs2/ibcs2_socksys.c
sys/i386/ibcs2/ibcs2_ioctl.c
sys/i386/ibcs2/ibcs2_syscall.h
sys/i386/ibcs2/ibcs2_signal.c
sys/i386/ibcs2/ibcs2_time.h
sys/i386/ibcs2/ibcs2_isc_syscall.h
sys/i386/ibcs2/ibcs2_xenix.c
sys/i386/ibcs2/ibcs2_dirent.h
sys/i386/ibcs2/ibcs2_other.c
sys/i386/ibcs2/ibcs2_isc_sysent.c
sys/i386/ibcs2/Makefile
sys/i386/ibcs2/ibcs2_stat.c
sys/i386/pci/pci_pir.c
sys/i386/pci/pci_cfgreg.c
sys/i386/conf/NOTES
sys/i386/conf/GENERIC.hints
sys/i386/conf/DEFAULTS
sys/i386/conf/PAE
sys/i386/conf/GENERIC
sys/i386/conf/Makefile
sys/i386/acpica/acpi_wakecode.S
sys/i386/acpica/acpi_machdep.c
sys/i386/i386/vm_machdep.c
sys/i386/i386/sigtramp.s
sys/i386/i386/uio_machdep.c
sys/i386/i386/exception.s
sys/i386/i386/db_disasm.c
sys/i386/i386/copyout.c
sys/i386/i386/copyout_fast.s
sys/i386/i386/elan-mmcr.c
sys/i386/i386/vm86bios.s
sys/i386/i386/db_interface.c
sys/i386/i386/elf_machdep.c
sys/i386/i386/bpf_jit_machdep.c
sys/i386/i386/bios.c
sys/i386/i386/mem.c
sys/i386/i386/locore.s
sys/i386/i386/mpboot.s
sys/i386/i386/prof_machdep.c
sys/i386/i386/atpic_vector.s
sys/i386/i386/machdep.c
sys/i386/i386/minidump_machdep.c
sys/i386/i386/pmap.c
sys/i386/i386/longrun.c
sys/i386/i386/support.s
sys/i386/i386/bioscall.s
sys/i386/i386/vm86.c
sys/i386/i386/io.c
sys/i386/i386/gdb_machdep.c
sys/i386/i386/genassym.c
sys/i386/i386/apic_vector.s
sys/i386/i386/npx.c
sys/i386/i386/geode.c
sys/i386/i386/initcpu.c
sys/i386/i386/in_cksum.c
sys/i386/i386/mp_machdep.c
sys/i386/i386/swtch.s
sys/i386/i386/perfmon.c
sys/i386/i386/sys_machdep.c
sys/i386/i386/trap.c
sys/i386/i386/ptrace_machdep.c
sys/i386/i386/bpf_jit_machdep.h
sys/i386/i386/db_trace.c
sys/i386/i386/mp_clock.c
sys/i386/i386/k6_mem.c
sys/i386/bios/smapi.c
sys/i386/bios/apm.h
sys/i386/bios/smapi_bios.S
sys/i386/bios/apm.c
sys/i386/Makefile

View File

@ -3,7 +3,7 @@ includedir=@includedir@
Name: libc
Description: Genode C runtime library
URL: https://genode.org/
Version: @VERSION@
Requires: vfs genode-libports
Version: @version@
Requires.private: vfs
Cflags: -D__FreeBSD__=12 -D__GENODE__ -fno-builtin-sin -fno-builtin-cos -fno-builtin-sinf -fno-builtin-cosf -I${includedir} @SPEC_INCLUDES@
Libs: -l:libc.lib.so

View File

@ -21,6 +21,7 @@ extern "C" {
#include <runetype.h>
#include <xlocale_private.h>
char *_PathLocale = nullptr;
extern struct xlocale_component __xlocale_global_collate;
extern struct xlocale_component __xlocale_global_ctype;

View File

@ -1,11 +0,0 @@
--- src/lib/libc/lib/libc/locale/setlocale.h.orig 2019-04-18 13:46:58.382346791 +0200
+++ src/lib/libc/lib/libc/locale/setlocale.h 2019-04-18 13:47:18.967789876 +0200
@@ -34,7 +34,7 @@
#define ENCODING_LEN 31
#define CATEGORY_LEN 11
-extern char *_PathLocale;
+#define _PathLocale "/dev/null"
int __detect_path_locale(void);
int __wrap_setrunelocale(const char *);

View File

@ -0,0 +1,16 @@
#!/bin/sh
LINK=$1
shift
for LIST in $@
do
grep '\.c$' ${LIST} | while read f
do
echo ": {port} |> !cc_port ${LINK}/${f} |> ${f}.o {obj}"
done
grep '\.S$' ${LIST} | while read f
do
echo ": {port} |> !cc_port ${LINK}/${f} |> ${f}.o {obj}"
done
done

View File

@ -0,0 +1,121 @@
lib/libc/riscv/SYS.h
lib/libc/riscv/_fpmath.h
lib/libc/riscv/gen/_setjmp.S
lib/libc/riscv/gen/fabs.S
lib/libc/riscv/gen/flt_rounds.c
lib/libc/riscv/gen/_set_tp.c
lib/libc/riscv/gen/infinity.c
lib/libc/riscv/gen/_ctx_start.S
lib/libc/riscv/gen/sigsetjmp.S
lib/libc/riscv/gen/setjmp.S
lib/libc/riscv/gd_qnan.h
lib/libc/riscv/Symbol.map
lib/libc/riscv/sys/cerror.S
lib/libc/riscv/sys/syscall.S
lib/libc/riscv/sys/vfork.S
lib/libc/riscv/arith.h
lib/msun/riscv/fenv.c
lib/msun/riscv/fenv.h
lib/msun/riscv/Symbol.map
sys/riscv/include/_bus.h
sys/riscv/include/clock.h
sys/riscv/include/asm.h
sys/riscv/include/resource.h
sys/riscv/include/trap.h
sys/riscv/include/ucontext.h
sys/riscv/include/encoding.h
sys/riscv/include/_limits.h
sys/riscv/include/minidump.h
sys/riscv/include/_stdint.h
sys/riscv/include/intr.h
sys/riscv/include/pcb.h
sys/riscv/include/reloc.h
sys/riscv/include/proc.h
sys/riscv/include/ptrace.h
sys/riscv/include/vmparam.h
sys/riscv/include/md_var.h
sys/riscv/include/memdev.h
sys/riscv/include/db_machdep.h
sys/riscv/include/fpe.h
sys/riscv/include/pmap.h
sys/riscv/include/bus.h
sys/riscv/include/sf_buf.h
sys/riscv/include/endian.h
sys/riscv/include/pmc_mdep.h
sys/riscv/include/reg.h
sys/riscv/include/_align.h
sys/riscv/include/profile.h
sys/riscv/include/pcpu.h
sys/riscv/include/runq.h
sys/riscv/include/sysarch.h
sys/riscv/include/float.h
sys/riscv/include/cpufunc.h
sys/riscv/include/_inttypes.h
sys/riscv/include/floatingpoint.h
sys/riscv/include/bus_dma.h
sys/riscv/include/kdb.h
sys/riscv/include/efi.h
sys/riscv/include/sbi.h
sys/riscv/include/psl.h
sys/riscv/include/dump.h
sys/riscv/include/atomic.h
sys/riscv/include/ieeefp.h
sys/riscv/include/setjmp.h
sys/riscv/include/elf.h
sys/riscv/include/param.h
sys/riscv/include/stack.h
sys/riscv/include/_types.h
sys/riscv/include/riscvreg.h
sys/riscv/include/frame.h
sys/riscv/include/pte.h
sys/riscv/include/vm.h
sys/riscv/include/signal.h
sys/riscv/include/exec.h
sys/riscv/include/ofw_machdep.h
sys/riscv/include/smp.h
sys/riscv/include/stdarg.h
sys/riscv/include/machdep.h
sys/riscv/include/counter.h
sys/riscv/include/cpu.h
sys/riscv/include/in_cksum.h
sys/riscv/conf/DEFAULTS
sys/riscv/conf/GENERIC
sys/riscv/riscv/cpufunc_asm.S
sys/riscv/riscv/vm_machdep.c
sys/riscv/riscv/uio_machdep.c
sys/riscv/riscv/nexus.c
sys/riscv/riscv/clock.c
sys/riscv/riscv/unwind.c
sys/riscv/riscv/db_disasm.c
sys/riscv/riscv/timer.c
sys/riscv/riscv/bus_machdep.c
sys/riscv/riscv/identcpu.c
sys/riscv/riscv/db_interface.c
sys/riscv/riscv/elf_machdep.c
sys/riscv/riscv/bus_space_asm.S
sys/riscv/riscv/mem.c
sys/riscv/riscv/machdep.c
sys/riscv/riscv/minidump_machdep.c
sys/riscv/riscv/intr_machdep.c
sys/riscv/riscv/pmap.c
sys/riscv/riscv/busdma_machdep.c
sys/riscv/riscv/autoconf.c
sys/riscv/riscv/genassym.c
sys/riscv/riscv/soc.c
sys/riscv/riscv/swtch.S
sys/riscv/riscv/exception.S
sys/riscv/riscv/copyinout.S
sys/riscv/riscv/locore.S
sys/riscv/riscv/support.S
sys/riscv/riscv/ofw_machdep.c
sys/riscv/riscv/in_cksum.c
sys/riscv/riscv/plic.c
sys/riscv/riscv/mp_machdep.c
sys/riscv/riscv/copystr.c
sys/riscv/riscv/stack_machdep.c
sys/riscv/riscv/riscv_console.c
sys/riscv/riscv/sys_machdep.c
sys/riscv/riscv/trap.c
sys/riscv/riscv/dump_machdep.c
sys/riscv/riscv/uma_machdep.c
sys/riscv/riscv/db_trace.c

View File

View File

@ -0,0 +1,41 @@
lib/msun/x86/fenv.h
sys/x86/include/specialreg.h
sys/x86/include/trap.h
sys/x86/include/segments.h
sys/x86/include/pvclock.h
sys/x86/include/ucontext.h
sys/x86/include/_limits.h
sys/x86/include/_stdint.h
sys/x86/include/metadata.h
sys/x86/include/ptrace.h
sys/x86/include/ifunc.h
sys/x86/include/x86_smp.h
sys/x86/include/bus.h
sys/x86/include/endian.h
sys/x86/include/reg.h
sys/x86/include/_align.h
sys/x86/include/fpu.h
sys/x86/include/mca.h
sys/x86/include/sigframe.h
sys/x86/include/sysarch.h
sys/x86/include/float.h
sys/x86/include/vmware.h
sys/x86/include/_inttypes.h
sys/x86/include/ucode.h
sys/x86/include/psl.h
sys/x86/include/dump.h
sys/x86/include/setjmp.h
sys/x86/include/elf.h
sys/x86/include/stack.h
sys/x86/include/_types.h
sys/x86/include/intr_machdep.h
sys/x86/include/frame.h
sys/x86/include/init.h
sys/x86/include/cputypes.h
sys/x86/include/x86_var.h
sys/x86/include/fdt.h
sys/x86/include/signal.h
sys/x86/include/mptable.h
sys/x86/include/ofw_machdep.h
sys/x86/include/stdarg.h
sys/x86/include/legacyvar.h

View File

@ -1,8 +1,12 @@
TARGET_NAME = posix
LIBS += base libc
include_rules
: foreach *.cc |> !cxx |> {obj}
: {obj} | |> !lib |> $(LIB_DIR)/%d.lib.so $(GENODE_DIR)/<lib>
: $(REP_DIR)/lib/symbols/posix |> !abi_stub |>
: foreach *.pc.in |> !sed_pkgconfig_file |>
: foreach *.cc |> !cxx |> {obj}
: {obj} |> !lib |> $(LIB_DIR)/%d.lib.so {bin}
: {bin} |> !collect_bin |>
include &(BIN_RULES)