123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431 |
- load("//sys/src/FLAGS", "LIB_COMPILER_FLAGS")
- load("//sys/src/BUILD", "LIBS", "KLIBS")
- CORE_SRCS = [
- "entry.S",
- "vsvm.c",
- "l64v.S",
- "l64fpu.S",
- "cpuidamd64.S",
- "l64acidt.S",
- "l64idt.S",
- "l64vsyscall.S",
- "acore.c",
- "apic.c",
- "arch.c",
- "archamd64.c",
- "asm.c",
- "backtrace.c",
- "//sys/src/9/port/devbridge.c",
- "coreboot.c",
- "ctype.c",
- "devarch.c",
- "//sys/src/9/port/devdraw.c",
- "//sys/src/9/port/devether.c",
- "//sys/src/9/port/devmouse.c",
- "//sys/src/9/port/devpci.c",
- "devpmc.c",
- "ether.c",
- "fpu.c",
- "i8254.c",
- "i8259.c",
- "ioapic.c",
- "//sys/src/9/port/log.c",
- "main.c",
- "map.c",
- "memory.c",
- "mmu.c",
- "mpacpi.c",
- "msi.c",
- "multiboot.c",
- "physalloc.c",
- "pmcio.c",
- "qmalloc.c",
- "sipi.c",
- "syscall.c",
- "systab.c",
- "tcore.c",
- "trap.c",
- "//sys/src/9/port/usbehci.c",
- ]
- PORT_SRCS = [
- "//sys/src/9/port/alarm.c",
- "//sys/src/9/port/allocb.c",
- "//sys/src/9/port/cache.c",
- "//sys/src/9/port/chan.c",
- "//sys/src/9/port/cpu_buffer.c",
- "//sys/src/9/port/dev.c",
- "//sys/src/9/port/devcap.c",
- "//sys/src/9/port/devcons.c",
- "//sys/src/9/port/devcoreboot.c",
- "//sys/src/9/port/devdup.c",
- "//sys/src/9/port/devenv.c",
- "//sys/src/9/port/devfdmux.c",
- "//sys/src/9/port/devkprof.c",
- "//sys/src/9/port/devkbin.c",
- "//sys/src/9/port/devmnt.c",
- "//sys/src/9/port/devmntn.c",
- "//sys/src/9/port/devpipe.c",
- "//sys/src/9/port/devproc.c",
- "//sys/src/9/port/devramfs.c",
- "//sys/src/9/port/devregress.c",
- "//sys/src/9/port/devroot.c",
- "//sys/src/9/port/devsd.c",
- "//sys/src/9/port/devsegment.c",
- "//sys/src/9/port/devsrv.c",
- "//sys/src/9/port/devssl.c",
- "//sys/src/9/port/devtls.c",
- "//sys/src/9/port/devtab.c",
- "//sys/src/9/port/devtrace.c",
- "//sys/src/9/port/devuart.c",
- "//sys/src/9/port/devvcon.c",
- "//sys/src/9/port/devwd.c",
- "//sys/src/9/port/devws.c",
- "//sys/src/9/port/edf.c",
- "//sys/src/9/port/elf64.c",
- "//sys/src/9/port/ethermii.c",
- "//sys/src/9/port/fault.c",
- "//sys/src/9/port/fortuna.c",
- "//sys/src/9/port/getput.c",
- "//sys/src/9/port/hexdump.c",
- "//sys/src/9/port/image.c",
- "//sys/src/9/port/kdebug.c",
- "//sys/src/9/port/ipchecksum.c",
- "//sys/src/9/port/mul64fract.c",
- "//sys/src/9/port/netif.c",
- "//sys/src/9/port/page.c",
- "//sys/src/9/port/pager.c",
- "//sys/src/9/port/parse.c",
- "//sys/src/9/port/pgrp.c",
- "//sys/src/9/port/portclock.c",
- "//sys/src/9/port/print.c",
- "//sys/src/9/port/proc.c",
- "//sys/src/9/port/ps.c",
- "//sys/src/9/port/qio.c",
- "//sys/src/9/port/qlock.c",
- "//sys/src/9/port/random.c",
- "//sys/src/9/port/rebootcmd.c",
- "//sys/src/9/port/rmap.c",
- "//sys/src/9/port/sdscsi.c",
- "//sys/src/9/port/segment.c",
- "//sys/src/9/port/sysauth.c",
- "//sys/src/9/port/syscallfmt.c",
- "//sys/src/9/port/sysfile.c",
- "//sys/src/9/port/sysproc.c",
- "//sys/src/9/port/sysseg.c",
- "//sys/src/9/port/syszio.c",
- "//sys/src/9/port/taslock.c",
- "//sys/src/9/port/tod.c",
- "//sys/src/9/port/virtio_lib.c",
- "//sys/src/9/port/watermarks.c",
- ]
- IP_SRCS = [
- "//sys/src/9/ip/arp.c",
- "//sys/src/9/ip/chandial.c",
- "//sys/src/9/ip/devip.c",
- "//sys/src/9/ip/ethermedium.c",
- "//sys/src/9/ip/gre.c",
- "//sys/src/9/ip/icmp6.c",
- "//sys/src/9/ip/icmp.c",
- "//sys/src/9/ip/inferno.c",
- "//sys/src/9/ip/ipaux.c",
- "//sys/src/9/ip/ip.c",
- "//sys/src/9/ip/ipifc.c",
- "//sys/src/9/ip/ipmux.c",
- "//sys/src/9/ip/iproute.c",
- "//sys/src/9/ip/ipv6.c",
- "//sys/src/9/ip/loopbackmedium.c",
- "//sys/src/9/ip/netdevmedium.c",
- "//sys/src/9/ip/netlog.c",
- "//sys/src/9/ip/nullmedium.c",
- "//sys/src/9/ip/pktmedium.c",
- "//sys/src/9/ip/ptclbsum.c",
- "//sys/src/9/ip/rudp.c",
- "//sys/src/9/ip/tcp.c",
- "//sys/src/9/ip/udp.c",
- ]
- AMD64_SRCS = [
- "amd64cpu.c",
- "cga.c",
- "devacpi.c",
- "devusb.c",
- "devvga.c",
- "ether8139.c",
- "ether82563.c",
- "mouse.c",
- "screen.c",
- "sdiahci.c",
- "usbehcipc.c",
- "usbohci.c",
- "usbuhci.c",
- "vga.c",
- "vgax.c",
- ]
- # don't want to start with a number
- I386_SRCS = [
- "//sys/src/9/386/devrtc.c",
- "//sys/src/9/386/ether8169.c",
- "//sys/src/9/386/ether82557.c",
- "//sys/src/9/386/etherigbe.c",
- "//sys/src/9/386/etherm10g.c",
- "//sys/src/9/386/i8042.c",
- "//sys/src/9/386/pci.c",
- "//sys/src/9/386/uarti8250.c",
- "//sys/src/9/386/uartpci.c",
- "//sys/src/9/386/vgavesa.c",
- ]
- AMD64SRCS = AMD64_SRCS + CORE_SRCS + I386_SRCS + IP_SRCS + PORT_SRCS
- strip(
- name="boot",
- deps=[
- "//sys/src/9/boot:bootamd64cpu",
- ],
- )
- mk_sys(
- name="error",
- mode="error.h",
- arch=env("ARCH"),
- sysconf="//sys/src/sysconf.json",
- )
- mk_sys(
- name="sys",
- mode="sys.h",
- arch=env("ARCH"),
- sysconf="//sys/src/sysconf.json",
- )
- mk_sys(
- name="systab",
- mode="systab.c",
- arch=env("ARCH"),
- sysconf="//sys/src/sysconf.json",
- )
- mk_sys(
- name="errstr",
- mode="errstr.h",
- sysconf="//sys/src/sysconf.json",
- )
- HRVYDEPS =[
- ":amd64cpu",
- ":error",
- ":errstr",
- ":systab",
- ":sys",
- ":inith",
- ]
- cc_binary(
- name="harvey",
- copts=[
- # "-c", this is always on
- "-std=c11",
- "-mcmodel=kernel",
- "-O0",
- "-static",
- "-mno-red-zone",
- "-ffreestanding",
- "-fno-builtin",
- "-DKERNDATE=1433623937",
- "-g",
- "-Wall",
- "-W",
- "-Wno-unused-function",
- "-Wno-sign-compare",
- "-Wno-missing-field-initializers",
- "-Wno-unused-parameter",
- "-Wno-missing-braces",
- "-Wno-parentheses",
- "-Wno-unknown-pragmas",
- "-D__HARVEY__",
- "-U_LINUX",
- "-U__linux__",
- "-fasm",
- ],
- srcs=AMD64SRCS,
- includes=[
- "//sys/include",
- "//amd64/include",
- "//sys/src/9/amd64",
- "//sys/src/9/port",
- ],
- deps= HRVYDEPS + KLIBS,
- alwayslink=true, #this is not necessary as klibs are hardcoded to be alwayslinked
- ld="kernel.ld",
- linkopts=[
- "-z",
- "max-page-size=0x1000",
- "-nostdlib",
- "-g",
- "-T",
- ]
- )
- move(
- name="factotum",
- deps=[
- "//sys/src/cmd/auth/factotum:factotum",
- ],
- installs={
- "bin/auth/factotum": "bin/factotum",
- },
- )
- KERNEL_DEPS = [
- "//sys/src/cmd:bind",
- ":boot",
- "//sys/src/cmd:cat",
- "//sys/src/cmd:date",
- "//sys/src/cmd:echo",
- ":factotum",
- "//sys/src/cmd/disk/prep:fdisk",
- "//sys/src/cmd/fossil:fossil",
- "//sys/src/cmd/ip/ipconfig:ipconfig",
- "//sys/src/cmd:ls",
- "//sys/src/cmd:mount",
- # nvram FILE ADDED
- "//sys/src/cmd/disk/prep:prep",
- "//sys/src/cmd/rc:rc",
- "//sys/src/cmd:ps",
- "//sys/src/cmd:ed",
- # rcmain FILE ADDED
- "//sys/src/cmd/aux/console:screenconsole",
- "//sys/src/cmd/aux/realemu:realemu",
- "//sys/src/cmd/aux/vga:vga",
- "//sys/src/cmd:srv",
- # startdisk FILE ADDED
- "//sys/src/cmd/usb/usbd:usbd",
- "//sys/src/cmd/venti/srv:venti",
- "//sys/src/cmd:ratrace",
- ]
- config(
- name="amd64cpu",
- deps=KERNEL_DEPS,
- code=[
- "int cpuserver = 1;",
- "uint32_t kerndate = 1;",
- ],
- ramfiles=[
- "//util/nvram",
- "//rc/lib/rcmain",
- "//sys/src/9/amd64/startdisk",
- ],
- dev=[
- "acpi",
- "arch",
- "bridge",
- "cap",
- "cons",
- "coreboot",
- "draw",
- "dup",
- "env",
- "fdmux",
- "ether",
- "ip",
- "kbin",
- "kprof",
- "mnt",
- "mntn",
- "mouse",
- "pci",
- "pipe",
- "proc",
- "ram",
- "regress",
- "root",
- "rtc",
- "sd",
- "segment",
- "srv",
- "ssl",
- "tls",
- "uart",
- "ws",
- "usb",
- "vcon",
- "vga",
- ],
- ip=[
- "tcp",
- "udp",
- "ipifc",
- "icmp",
- "icmp6",
- "gre",
- ],
- link=[
- "ether8169",
- "ether82557",
- "ether82563",
- "etherigbe",
- "ether8139",
- "ethermedium",
- "loopbackmedium",
- "netdevmedium",
- "usbuhci",
- "usbohci",
- "usbehci",
- ],
- sd=[
- "sdiahci",
- ],
- uart=[
- "i8250",
- "pci",
- ],
- vga=[
- "vgavesa",
- ],
- )
- elf_to_c(
- name="inith",
- deps=[
- ":init",
- ],
- elf="bin/init",
- )
- cc_binary(
- name="init",
- copts=[
- "-c",
- "-g",
- "-Wall",
- "-Wno-missing-braces",
- "-Wno-parentheses",
- "-Wno-unknown-pragmas",
- "-O0",
- "-static",
- "-mno-red-zone",
- "-ffreestanding",
- "-fno-builtin",
- "-mcmodel=small",
- ],
- deps=[
- "//sys/src/libc:libc",
- ],
- includes=[
- "//sys/include",
- "//amd64/include",
- ],
- linkopts=[
- "-e_main",
- "-static",
- "-Ttext=0x200020",
- ],
- srcs=[
- "init9.c",
- "//sys/src/9/port/initcode.c",
- ]
- )
|