From 648f7111c08efa1d654e3c34fb1f58632412ed6e Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Tue, 14 Jul 2026 10:19:35 +0200 Subject: [PATCH] feat: build userspace programs with the x86_64-montauk toolchain Switch all program and library Makefiles from host g++ (or the bare-metal x86_64-elf compiler) to x86_64-montauk-g++/gcc and drop the flags the target now owns: -nostdinc + kernel freestanding -isystem paths, -m64/-march, -fno-PIC, -mno-red-zone, -mcmodel=small, -static, -Wl,-m,elf_x86_64, -z max-page-size, --build-id=none. Deliberate policy flags stay (-ffreestanding, per-app SSE, -nostdlib + link.ld). Program builds now require the montauk toolchain and fail with a pointer to build-montauk-toolchain.sh; lib/ and libs/ keep the host fallback since the toolchain script bootstraps libc through it. Userspace is also now pinned to the cross GCC instead of drifting with the distro compiler. Co-Authored-By: Claude Fable 5 --- kernel/src/Api/BuildNo.hpp | 2 +- programs/GNUmakefile | 28 +++++---------- programs/lib/libc/Makefile | 2 +- programs/lib/libc/obj/libc.o | Bin 425776 -> 425792 bytes programs/lib/libjpeg/Makefile | 2 +- programs/lib/libjpeg/libjpeg.a | Bin 330158 -> 330174 bytes programs/lib/libjpeg/obj/stb_image_impl.o | Bin 329520 -> 329536 bytes programs/lib/libjpegwrite/Makefile | 2 +- programs/lib/libjpegwrite/libjpegwrite.a | Bin 134080 -> 134104 bytes .../libjpegwrite/obj/stb_image_write_impl.o | Bin 133576 -> 133600 bytes programs/lib/tls/Makefile | 2 +- programs/lib/tls/libtls.a | Bin 111626 -> 112738 bytes programs/lib/tls/obj/tls.o | Bin 111232 -> 112344 bytes programs/libs/libnetworkapplet/Makefile | 2 +- programs/libs/libprintersapplet/Makefile | 2 +- .../obj/src/libprintersapplet.o | Bin 19776 -> 19784 bytes programs/libs/libtimezonesapplet/Makefile | 2 +- .../obj/src/libtimezonesapplet.o | Bin 19912 -> 19928 bytes programs/src/2048/Makefile | 22 +++--------- programs/src/audio/Makefile | 22 +++--------- programs/src/bluetooth/Makefile | 22 +++--------- programs/src/calculator/Makefile | 22 +++--------- programs/src/charmap/Makefile | 22 +++--------- programs/src/crashpad/Makefile | 22 +++--------- programs/src/desktop/Makefile | 22 +++--------- programs/src/devexplorer/Makefile | 22 +++--------- programs/src/dialogs/Makefile | 31 +++++------------ programs/src/disks/Makefile | 22 +++--------- programs/src/doom/Makefile | 32 ++++-------------- programs/src/fetch/Makefile | 22 +++--------- programs/src/fontpreview/Makefile | 22 +++--------- programs/src/imageviewer/Makefile | 22 +++--------- programs/src/installer/Makefile | 22 +++--------- programs/src/klog/Makefile | 22 +++--------- programs/src/libloader/Makefile | 12 ++----- programs/src/login/Makefile | 22 +++--------- programs/src/lua/Makefile | 20 +++-------- programs/src/mandelbrot/Makefile | 22 +++--------- programs/src/music/Makefile | 22 +++--------- programs/src/network/Makefile | 22 +++--------- programs/src/paint/Makefile | 22 +++--------- programs/src/pdfviewer/Makefile | 22 +++--------- programs/src/powermgr/Makefile | 22 +++--------- programs/src/printctl/Makefile | 22 +++--------- programs/src/printd/Makefile | 22 +++--------- programs/src/printers/Makefile | 22 +++--------- programs/src/procmgr/Makefile | 22 +++--------- programs/src/rpgdemo/Makefile | 22 +++--------- programs/src/screenshot/Makefile | 22 +++--------- programs/src/shell/Makefile | 22 +++--------- programs/src/spreadsheet/Makefile | 22 +++--------- programs/src/tcc/Makefile | 22 ++++-------- programs/src/terminal/Makefile | 22 +++--------- programs/src/texteditor/Makefile | 22 +++--------- programs/src/timezone/Makefile | 22 +++--------- programs/src/video/Makefile | 22 +++--------- programs/src/weather/Makefile | 22 +++--------- programs/src/wiki/Makefile | 22 +++--------- programs/src/wikipedia/Makefile | 22 +++--------- programs/src/wordprocessor/Makefile | 22 +++--------- 60 files changed, 231 insertions(+), 744 deletions(-) diff --git a/kernel/src/Api/BuildNo.hpp b/kernel/src/Api/BuildNo.hpp index 43b7931..4adff58 100644 --- a/kernel/src/Api/BuildNo.hpp +++ b/kernel/src/Api/BuildNo.hpp @@ -12,4 +12,4 @@ #pragma once -#define MONTAUK_BUILD_NUMBER 6 +#define MONTAUK_BUILD_NUMBER 7 diff --git a/programs/GNUmakefile b/programs/GNUmakefile index 40ae225..4f512d5 100644 --- a/programs/GNUmakefile +++ b/programs/GNUmakefile @@ -6,50 +6,40 @@ MAKEFLAGS += -rR ARCH := x86_64 # Auto-detect cross compiler from toolchain/local/. -TOOLCHAIN_PREFIX := $(shell cd .. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) +TOOLCHAIN_PREFIX := $(shell cd .. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) +else CXX := $(TOOLCHAIN_PREFIX)g++ CC := $(TOOLCHAIN_PREFIX)gcc -else - CXX := g++ - CC := gcc endif -# Compiler flags: freestanding, no stdlib, kernel-mode compatible. +# Compiler flags. The x86_64-montauk toolchain supplies the target ABI +# (static ET_EXEC, 4 KiB pages, no red zone) and header paths; system +# programs additionally avoid FP/SIMD and their own runtime (-nostdlib). override CXXFLAGS := \ -std=gnu++20 \ -g -O2 -pipe \ -Wall \ -Wextra \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -mno-80387 \ -mno-mmx \ -mno-sse \ -mno-sse2 \ - -mno-red-zone \ - -mcmodel=small \ - -I include \ - -isystem ../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../kernel/freestnd-cxx-hdrs/x86_64/include + -I include # Linker flags: freestanding static ELF. override LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T link.ld # Output directory. diff --git a/programs/lib/libc/Makefile b/programs/lib/libc/Makefile index 383f693..228a178 100644 --- a/programs/lib/libc/Makefile +++ b/programs/lib/libc/Makefile @@ -6,7 +6,7 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CC := $(TOOLCHAIN_PREFIX)gcc AR := $(TOOLCHAIN_PREFIX)ar diff --git a/programs/lib/libc/obj/libc.o b/programs/lib/libc/obj/libc.o index ea40a3c69b8ae4e58faed6ba4791e3a85c92c7f4..69a4160e9b2141567bac58256deba7b28c465dda 100644 GIT binary patch delta 4303 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 diff --git a/programs/lib/libjpeg/Makefile b/programs/lib/libjpeg/Makefile index 801fa8a..7c499f0 100644 --- a/programs/lib/libjpeg/Makefile +++ b/programs/lib/libjpeg/Makefile @@ -6,7 +6,7 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CC := $(TOOLCHAIN_PREFIX)gcc AR := $(TOOLCHAIN_PREFIX)ar diff --git a/programs/lib/libjpeg/libjpeg.a b/programs/lib/libjpeg/libjpeg.a index f1b0586b74a809940d5da5fe4a102377a2aa7e75..d345c685dbfd152eec3c3df8acdcd8e842c54f16 100644 GIT binary patch delta 2422 zcmZWr4Qx|Y6y81el~-nH-z%e~<*#aVm`JxFZZm4OplJ&znFGe901ty{ZCpOLZtzP54 zD<{XDv&^&9lkHyeRApev=8canc`i`75f?lQ`$TmmG)N-xEG!23sX*nH4O=(i-&^4! ze4q;M6t7pozC3tr7W&(u3ZA#(p*GkK$1GUf4tCcmB`x`RF$HPqgiq3Ug%xWx|0}kX zBXX60hXp&@p%j8PR65`|thV6U4r=})Iy&J5`x?hOVH-phtk_4^n81Bd#9W0s+b~bj z{afuO+s^&a!Y*TUKh(Q^nVs^!EE%I-vSD!-)qKN>9bMpo%?ggvn%#>9-QWPU;JR+` zvXdC;hA2CYJ^?;(s~8s4!hVd=l8vC;12Jkd-UDUq56tX^EC{K%u9t{EvSLp!iFC+< z*$2Rjzum~qSbYErVVQ!54#0Ni7eyaJCNMv4`Pa<6VDHMS7K5MGu4=l#c zcVl}WI9LP5`$(Jy5jg@`9NKL-G(Z|R=<{Z%#;i=W`zVyofSDOsp7>APBN@iHY8o*? zdRS<06X2cZ`}Y5F?jefXreg6Bjr#)ap|+l-h|wWvV^D9!@Rwj`4`K96+P(X2=pG?| zS_T%6fF1mbs2G6>1p=xl{~mG~a21!?$va8dj&5gU3RWa%Hmte z%Se{!%A_nst9U*1TX1w0x4W*_Tl3y$EJCs<_wZ7#$?|kjQWi&XvbQpV>A~N;-#_VA%ThATSIac7WTl`#t_PJr`?RNXQ1f(n95{>HI|b zw~UR8%=fv>$ey()We@J*k288@zT3+aCbGA8rtFiQe1@#$_vrb({P;|E78f0+TkxEM z`GhhmY9n9{Uk(*1uFq`}hD?T<_|6&omnIIu#6)o{($BR?2`~HZ&ilp`Wl}EupJR?>@K5 zn0G)$WsnMOp`iz<&2KO?$g`Y}>UVtjs_-u`F-Y6)w}|Y|w15d$YBhx1aZQrew5YQJWi=sOD|n%l`zcHdR*8!$m`<`F-flp?cPK8D7mE36qq z=cF0}d0dLIQH+n%YBBnLCs>DZ4eHQ$o}dTg=cOxP!b&h43*`4JW#|WU65u=rfsO#469ARS-iORG>^5 zTCcLn$DEjuO?l~En;|L9!wi)%X(4*drn$_9KC`JHeesr*@7xUhqL(eiHqA$qlaD%- fXHrOUT`J^^gvzg!UOCe=H$8kR^`~L4IcfX{UV@Sx delta 2386 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 W_@c*KXEXaF_!xx!J%neArT+sKy`*gb delta 3551 zcmZ`*3s6+o8Q%Y5U>BGOjR{_7qCj58nIIP*i%e{~lPataaE%#UBPG0S))Hk2;b9vg ztr5XgL^6I|NE%3|pb3mD$@B`Di0dR;(>N`5I%=jJ#p#4<>eQu1p<2@a?mc%VduF;b z%g6b?|M8uF&wX5k{Uq!M=h>Z0v$C_YoX%i+KRs$KQd70e%*^lnUA}xNua+!X=3L$} zNf~7SMVg|gDO8@U*Uq63-JhHPeCo5BmZ~ky$jZn>&ja+ASnsBi(#ndC4K!DO{vm3i z#8+xceRajfWz}U%vh=^D&>+p)=Bup1n<^FPH&p72iK(dEhOURHP0yT9gA0|*gsZEm z)*Tybi+q-vV2fug=kE}i#0rUDDb~3X{{!^oQi}S7NGp-#0~j;pBeP7tN|L_@<+1#| z`%He1B!2{r<;ET%e<;c4MAI)M{t1UkT$Fg9SYMU+i8zz^r^IKNu5l)hlGPS5uo%(Q z8dxI2>`|$=A>K_tqAT#ZX|Xz6l&q1WI}mj9hFwBFAjuzK+>qU(*C&#E4#{g+9*8lG zUYF#@;aWqBsRDkE(i%mNLdA@>4Br#G^hx}e80Ks>Po#}X@>$SYEcK9J_Bvy zUSrS<_=8@uiSEpzP4IeYRP7c$GmU2av3e#z+rkH@)rK`&cn)vaaEOua;?fqj|7WDV zz;IIcy+CoKgb3AJIjWcRk*yRS!D#WxQH|qXvA1FoUwuhMaPC7>n1-DTO{qpqwr!XLtq` z+-N#hAE{tx$^hx7w$V0Ho5au(9*FLk0oO}hZh+AG5*<+fZP(}d=rmCQ#<%mi9T2B_ z<%7{_NrEqsdHujo|(WbI_vgod5Gmso@tl!poNRkV6u zx+vO}65Z^I4cl2)3T+r-q`jD~;_Nr!^7Gd7;Pvy&=3>~-?~5hpOo^ zQ5AY>_%O`ISPiosP+v8#ms78Dxi&aznN5VJmf9R&nZ0d4NAN7A9Im4z3Lv>I65y?) z3seNHo>yTs7!W|nfXCoyVCaI!fJy`!*hDOncX3x9@h)Cv>%+UKP*ICSgNgakyWD{% zU*qTiysvSIMD!R?i)#iPg0`Fb)C_U&ZC((aT8Z#(oOab7)^K&w)N*`7LpNPfPN7Xe_&Li8)M4a+BD} zjKr@L@$pW%Tf5Qi8S8E+$?*so^2=flJ0$r$!YnshW;!L=GSe&ZZDMaj5?>}M;;=%W&U9^?JIC(HZOl5Ba*lXz>uZ4y5y z+Mkp7Ho@PJc-6Fpx&cboba62}BHo`Z@762o28q9*4-ZfysbwN>Z;si;%IkpV7{4T} zB5Xg#H>?YK;2528(l;oX;9uD;CTP8!8(9_nU4V8&)`XlZoLh1ZLWcaTkUf%|k1)$r zs5|~a6NzL)_!f=g<}I@0_&0Q%@A>}Q?D+`747hol=3vhqegIY7;fSd_RL?KL{wW%z zh0vxs@F0Q)T!Ho(? qc;y*>NCg>`sR>NRE8jO#6PRs+pW*(S*UXf;k>8`Ey=9I#bpHbw)3ZGQ diff --git a/programs/lib/libjpegwrite/obj/stb_image_write_impl.o b/programs/lib/libjpegwrite/obj/stb_image_write_impl.o index 5a1517af5842f3a6b372cbed34ad3ccc9e109886..d52704d1419b2a044aebaa12fc176b31697feb2c 100644 GIT binary patch delta 3508 zcmZ`*eNdFg9p<+vcNmOZHG?lz%4x?)Qa(;i{HU5TR*u62#J15Rv2utX7X?I6R8&I7 zh_n*{ZSw$`F`UsLL~S9HzSvAPIIWt-OoG$akNy#GhANquh>D6jO@4c~?@VrI!i@8{ z&$GXeeRgl(J-6T9yWd_vl@hCyK1iZM#{_rwZxR={T#2q3DbrHY5|fLHOOiLPDooy1 zQoIT;kEMT`Z#bx%OxHMSCA0qt`V*lkj175&UN+OrXxGA|V17eo31>wkSzPM9c_5#3;r>{`Zau5wkTug+hc| z$0KbP?MJeG&S(HKb@Me))LCEo+{uD$Dy=<;^-1;3+STgVh>hwA)C!?U&)<`1H$Yqq}62XRi-^QHoW3oxK?wz z0|MJt(_TT*=BPDvhG;o@*7CVMpgf=VM0gk}K1bsdOv6v9k!+l2J*RzIVBdP~hj;#p z#3=%kin!}r@E7q~?xBN0JTCBn+4!+4>05E(#d-*N#T=bUILJtUz(6raH^WuJOMelb z683Bg+De$5fx!~?>^S@zcobuHY@jcQO3|>955q)sZ)7%r=(5o7rL&CF)nmAf+0jTZ zr@H8iYA;_y;4H=AW;w-DD`-=2hG!F9q;+s^=FzwCOK3%hglY^+XhV7h!&=lEb33&fsp|5r`AK-_ zTJ&vaD|TaeJ7*|E(hi0ccz1BwZuCf)WO{beXCsZH>L8q-6rSQNT)Q}^-t_I_BRj2J zP1`v+e42GxzNztJ2v=X{pZ_^HcFQzK-_31LN3Dc)=wXnzOneO+z5u=&{=xEBb6*Xm zh@%3h8EFp&nWnek+#}sW(;oi3E<}1QXXrw$gb&P~T3TbH+ve;B?vk-~A7KQa2q%J7 zbHO%b!4Gn~toytuIeZD9DF1h9{1o(YwDGm_xJ8r4z|qLbcOa=TSjyYTOEUOKHu91( zFwjUVjI;JoDQ`-6$%XJWaq6F`Z{hDX`9ElA;+%Xun|P6YJe$?=Y?jB<9B!r>JMBmH zJDj6bb$@hvc!_#+Ncp(>V*Fi`e~vyWA6DD?P?K-MafszQ)qk>jiCEX;lSpUT*QIJ_ zX>y_BU)K0hYQ3-g0AH!``8aVX=)=IFpbxIYAs?Hx!=R?D@x(|a= z{-b*2oYCZ7INK=BBa}_IG}&_Z{~AAA`8H~%Uagwb8EMvasLA8eA>~SCYq2KxqL1Y& ztC?m^wwifY_*WHwL*wH^ZDGxOM-5sOW65< z`RfQsxC!S&hQ$a-*aGJxS!$%Pn@1i|mz_R>Z=^USVn4*BD6y0Nj6jsAV%BLBRU)<@ z2W=vQ7Gc09W=8)tKD5F@B-zDGN`TKUo}*a^Fo@XexN7Go9EV0T+Xx@S<979^9v|F~ L{ee~E)S>$h%}As| delta 3420 zcmZ`*4NO#58hzhIhoREy7+pHh`PniM{87pGEJ+oO|uL22druLyYuc#IyWha zIo@;bJ>SoK_q{jP;ryh-xqk^cLn(hsp^Ywc*K8W5`~0~tEPTe}S?F1onwI()`d#!d zbHyC$qr|PX8!ET2Utd;J_IR54)m%D7(<&;fYH=`$^30n_)E5_5UR8m^zoa&E`LF2I z5^;s_^(xv%4g|9(sqsBBqJLfsjC&Y2^1n>A_G|pp(=1}0#y_llf*QYXxBRQLr+<$afe4i%wB45fEROr8J^1}#8xl++zX!11-N;y>(bW4-> zBEs^#L?t^_5W7Eh24?%|cQl4-KP{!1==HN%N4(_{(suiBQOYM&A@6H)0F=Y>1=WTT zO&)-UWm=3t4lQ+;JFOTVVWFK-Big0OT~$Y=CSS%dpQap)ORo_m1fpqs1LUU;gaXtj znhZR$nzE@4)vL)b<`RZh(`mYb`e$i9ZNsH!dG7%vuVIn*zPu*7cTg^Q?;T!>-xF4@ zrBo_H^;%jgHWS{F%m3gaFDVX`%j^&FNXupR8w7btZ=+qZKMI_c?1vba>;fd`F>FMB z9!EWlF1aF%4QdHfS8#S9;r z)x{J~Vwljdj&~g+^XxiukbAl1V)V?g{$ty{XGVTQdC>!DCDwt468b=p51vxad=Ubr z-1r{!m$Ll~jF-}Oil8#cs|6U8a1~PwqQJn)4V3M6s0nIz#YQ@h-VHP=&T$XQIM9^C zJX^+@i2*XtZ=?#MCU`11Vk!a^Y&SqSP(k~|cTRKBOY|`X^3+^==EnLCs7cM#_*sh2 z(|OZVNlW9nmS7df$sioB;(TTiCL}&V$k@bvC4@F{aSn_yhzAI>U!m-IiH#+2E@*%A@Js#;b9JBy?d! z!b5OvXE=mn303Ib&XFB(*KsKBd>yZro5OWfDBLAhiN>}0v9-Pe&ko+*h2RdhNJPJc zZ5Wqu0N$PaPDn*$C*O)HbsPS$Al9J{uGiS196kvPQT-Z+{Rr13%rS$z=pWPREqI!F z8a_s#nfJ7r_02q{?n?D2-1T6rqYsf5N)q!8+-c!P3?XH=JcZ)joYX_;l~97~4DvCN z*2*n>0`;wYCr=wV-b$(B&xFg2)QW^Xe6$WK$ylqx)=O#Y*RTddo(u3ClLbq18-Wau}PCJE52FdA5l#_sPW&z)yX|3 zbuGf0yc538XbY-4x#%T4mz`X67O0B{FN|OppG{X+wLCR8)A?v;nLa^(7hCWIc5&4_ zf!%5XyX6F$u0z!7474bZp2uT7np8O_HQw&dhZ^65$YD+?Lp}CB)nveRgyk<(weibh zqlMsOxzVj!@73gUDw)+9zg6+S)%d&W-oE@Z{0@yTu;OC$2&Hhp=xDTGfumNxCXPn? zo5Xt?N6!=Uv(+QXyJH&P2H$c1^~+Qir!~0{)hq`xRn7m_ zc!gbAs(osc088xlQrkYP?%j zbFca=wzD(Q&USA5OY=ER9yNzgP$N+pd;|O$VSf#FWLRNrmn=ff06*?V&E5ezm+ro) zvQSAxKR3#mb0YK=M_Zs;xKeGCHd6LrP|6ufUZcs+AR^^lCBLZ2g{JE&T}vbbQxp8< zb3el0G1Q^{23PPdrWi1JgXZ9kn^Z-gW9laJW2nEyyOzLvn^*f0mM{kIB*QF(B^1Fs zML+Tz)O&|lpCT;bb9ldJSdOrSQh4t&>^H-A>5P+u)lU~^#N-e%9AX!BBJ2<{1#i4) z6q8?KC|+b!Cdet$6Hd;v$|;49m;3^(cZwDK77H_o$!oad6i>;c3CuR3o diff --git a/programs/lib/tls/Makefile b/programs/lib/tls/Makefile index c9e5f5c..4a1bc5b 100644 --- a/programs/lib/tls/Makefile +++ b/programs/lib/tls/Makefile @@ -6,7 +6,7 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CXX := $(TOOLCHAIN_PREFIX)g++ AR := $(TOOLCHAIN_PREFIX)ar diff --git a/programs/lib/tls/libtls.a b/programs/lib/tls/libtls.a index c1431679f4fff34ca516f45bc7901805339f3506..f4af39e85944ad2a8b0dc1400d8b3533c73b3b93 100644 GIT binary patch literal 112738 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 literal 111626 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 mGdM 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 z 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 literal 111232 zcmdSC34E2s^*8>kH}~ddxgjA534yThkg$e5fn2zO1OiDk;1WYfAW9aqATBHlSgsKT zt1VR&?4q>Qmilu++yEEUy0`AtYPAY3)w*w$_j}IF^W1p?^k@I?@Be<@_qNVGXXeZ~ zXU?2Cb7r3BlJ()zIfkxl&PUf~Xfe#G)wB(JVzq@_U8oJ!hG-gLYfA&Gn#$j$(W#NH+5XaKU8rR1w7Amfd!^AYM2mio zKeF*5|7k_17oAabW>L)<4<`35)JnT%zW+R!|Ht}anExmB%bPN$rF~3YeOm|0+ED~F zHZ<1NcGS0zu50ViW``G7mdq)cT~rxnt5@yw;aeKLsH&*4=w7O4qhI{N4r)6bM>Ubd zbN%ugCf77rJK5fRV9nstx;OSw3s;mxAC7D-JQkUL>{y((y8pg_(-67%A!ZhR$zxcp zWb0a;?Oqangl6r@eIzZMe+=v}C8g1C%A)Tj+c8G7AF)Pj4}bj;&0-A6LYHXlpgdPLS!rJSM&gR zeB`iA6!eKi8B}yWx&n;Bs@O{x>+=3pk*@n_u#wHjI&79u8vT;Lk6!yd`fiJKu`pI6 zvh|uZpyk0p3c*6|=4xVbIJ|+;!{IIT&0Hc~cTgM5&b_#9!*puaI+k~_z8KQd$kw&n z^1s+$h-%p_yaAe#gh({JBmaQxlYGsANObMCXn1$>o!ohvp1g^c(KMrDFvgI)>3(R< zERNnT^%q<=AL~4F^hQ((p^+|D;*szkBO2Zdo(F{7Xm}raO?srOC%9^nt_l1lS9@vK zg$NrLhDs(MOWybxS}?9iS1@w$Z@x%Zcw5=lxq4}IHiCnd0(?g#TATv<@NNP^0QL}& z2>=p{Q*r_9BVZ^1jH@^$55S`Y6de8HUl_Wpqz(=DIU4T$HyX+=Ab->$KLGONO+{qN z6AtR=U~0nrpC8$3&5Rs;H!c$836%^Ea{mU_XB-WfMvFK&2{AAdy{3@o=#B_~Z7#=` z=+|{0RY_P-b#0|)coe%!G#H7_4jp|Ea{_0gszO-w0SdtHi?v0juiDoeCB+lOlG3eB zx0FP`LooRi5xlT8`cbl7oP1Z+Eyc-qhJT0RjNcb+z2r))i=wTI&En{@k;VgkH^0B= z;5Wv`H_gbwBSZ8XCH(hB5tj726-Ch}_Zes{-CB0LyMBwhN-zFSf3|4yfx_fnha(%mN{l{Un0(D6 zk&OrR!cAXx{%Ju!a+7;03z4?c8EY05wF{&Sx3auNVH zs(TkM^rvLIbn6}(Z1mNA16V2AAtKRNlI`drs8u8)?E87NUrPl`Cm(4aC}uf&4BNOmqfp$DWHsG;|H|BBhjke(XyST(eSq7XxZLm`*4^y z&&bvtd7YZ}Ncb)oPAsXS=tFz-&X&l=wIQt|c&sY4=|J-4z3{%GFCH?IH(v@#fI`We zchX|`;vs)W{D!r6X~~2+UWVR0vZ8y*?!5ha#C2>h>WV`w zx#rNuulgbqZ#tB`X%I-e%I@9#Sn}p9fKZsmeKZNM+;_HiKI(9ZbX7gtMZ|zAu-~kiC}g-AM&P>sOxoGchDq;qyG@IQP;E&?o}Fnhuteu_c7#Ld6Y-A zcF+4WlKXA|tc<*Uj2Ja~S8S47mN1uDEP zA9<62q*S<~F1_+-BiP3Bp-A1@doj=3Fv%s+?<4w)4!a`#bsArBwDaDh1(;Sj4-RA4 z5@x*edF%#9?*vEKi{|ZN!fygjb4H)4eK{y)epwcM3hU=SIGct;@W9Fh z68E4$uDzI!10s#Xj37Hrz8Z1z?c}Qu`JYMN+!tLrYNi7y>000~=}LzqMxuW$-P*ag z=z&})Dr~#8^A_Yh(v8AMWZyvMhNa+eKr|2p(U17M8Yx@-OU2QT6^G_LlemdQ9 zl%vzxNMi|cgEDC~=NL?0Y1xg<9a_RoZu5xD;VwKn^Kl{-gGeA)u*mQAH>x*SNl`Vv z*Egt2pm3LCDfN?j(RdQ*AkBpS*ZK|soX`WsShQ#b{@49i0pU^l-wNbYC3XZ1QP+dS z&o8h(YFhmL@J%WOpb%t0G`;Vxsvj0HsZ&EuK?*P*5n^B(Px1YsV7LAW&s_h@5E{Q}d zOo>jjeW=Vm%fFcrtpN!Bk8wuz4AMpmF6(U2{9Ss8n&jv&*MrnI5?o!oO7m~kgR9Y2 zuJxcvAuyH9JX7mI2D{Y3O)UUa^Ixf(WSZQS{fq>e9t5DeUHcw^dNPE zND^@rAd9r5h=1tjk5QM~>YvS=ry*2Gj}ptIcd8$X(-q3tyTx1PaJ!I?S-lxxkWl>;4L=)%qc52=A=2*sgNSr&w&)4Pqpx zT0tV*BCu*Jm=Ek@4nh7URz?x9R$cfJwXo4Mh0&>v@no$Bt%XGnZcCL;v&=t2l>}-K zGx4GoY6W68rx$&3j6EHF!YW$VD629WE)`Juih3my%E3gDXd9xl^ zf^MN;TW7Ntf0rIu3oKJhnujl)i?=tw zLnJS01nP7yx~m*V)F~*0%HQY%=K@KXfI_PLt$rO4p|WPER<;e*%0YoiD`y&k2hdHb zJl07302ox>i!YrEMddqCY0pBDz!1sHI*R#wmx#GwVyY4zCd|E`x;=zK=sw*TVq(uv z_$O*u_k#Et#>J=+y3h9L9`WeDz@z(VM&MWICbqlyb|df2|McT<<&5Fv@_ zPAF*pM9m~uX;!3ug63pRkAIl;p9eZIki$k_a%qV@W(288E||xKIldBsVksIpFie$( ze!?(QP)A(<%*=MXTwgHya%v)EyyW5fvcnbBh=8ve<_gK>Z6<%mg(iO?#fe_`|`Lrd%{50|gKT)s8TPbHTd5s)>l&E@h7Q?=8tOw~>| znY;kLl6Ki+nv>Cw?6Q}+>~p!?W~z3%-NWS$FPFPabG_tpfVq6{ayewGc6rFd0MLt|FT%K{cY_(LoT^=|BkhFdXZv1rnV;ifzS5`8!788iNQ`-tmwAiNq#GP!UP(b!s~60xKrVMvj%`rn&q@O&(c04&g_XsVqVY84+-XtaX)pLpY373B2KmWIdRs881q$L z=FM?tn`C|-Gw+M^5oWnC?lYJ9MIPqo$Eh}78)v;1W4_MId_$c1v}7J-<`)U(TjLf1 z5N5f;!@Mg_wfU8C))Wv*vuyJ+zbeigiN*<<-b_1?_KC}~#m}}C{9FCKXmb_Fx&Cb0 zbp+Dp&!kW*kam9-#R`FR__N9L1=8uyqS=%SV71?j3aJ;d)Rid?-C92zU36OK@3q^N zy565nyOe0z;LoJcERc)+SrmT+a*02iR+B(B`m<=7rPNJ+^O%r&8B2ZLmD=U!*$|yB z_oveaFOaSNOxo21a)rMqg>r#h>Cd2eC6I0YOj>3F+3wGv`Il0!@|&Fy1PkwAsg*q( zx}W)Znnb5-{kK))a2*Y9Dj$O7tI!V^7<`WIC9lUws-l>TGSES2bk?A zF581*<|Nw(J!~Ix*@_tTh~L~N*-$>HX_HeO?UDlOk`4t_?NS1cc7jc6z&s||WOL01 zmrYJUUA%ogY;wD?=^rrXpyPyXdL45)2t?R)xlpEON9{5#zCO^4?9sEXLyK<+WRl9# zDk}o!R>7c&8JKAfgJz+I;MNl8MdlJnYao-fl^o6um`?!{!@4YxmIDrUe-wPW2m?^g zsz=dHIbDcO&jvz^sne+_k}mUhaP#!orIqL(BD$NvP8?%{m-f95H3`&xEY;=)f8>7+ z2>F#3yj&cq1af0Q$3tkpKz%Mf9wvJNXwkCW--S0%fmvq@^;q``_jmJSc!oh>unB2slqefeas`O?p z@s}wCiLoc%B(zMg*An+|y_kx`-*A1VW)m~kIPte8F->SfF{V24PGXsw;qckVcd1%> ztCqN*`H1;VyqEce($Ccr@8|kVHfZ7juFp+hjt+;oVW?<$h#T_Km!roc+)yAI9_5C@ z^hPv1&JAL25})9Pa;fE$<~q`nG!tsSo0bRIo`8av!~y_1SwLsQ5~|tf1LxI{n4zbg zMfCL!{Z^vqg6U(B%Sf}IB_4f2D0tkar~Q(6{MzC1gv%q={VJ;CnXrlRn9QVq;!86# zrAd=M_3`?G>5@L@@d}eBeaYhuiQy%EWj+f=3Dhk&Gs)12$2=e$v6C!aFbS^Fl6<=0 zB3k_7W+o(5P73H|8hRyA*W7|6deDhGN|#TDxGR@j2kO1vK$FM|lEw;5TqPvU(1Ty2 zEi>5Exk^hqQ%~%NX~-2aoAqEZu%QCmsV80tEKkcKqYy(5C^{Jn3j=r-8HTv24S%Nw z3S`7snaG%B*=+Xr4g(S?=(>{(MhmkdJ-U;`h+~l8TmovI=%ih`c{;=-Y;bFCF?#F* zV*e5atA7}P&IMgKinaX&)ltCG?5#w6DtHKnj~HpMQ_Wi_ShHZ3)7=e%I@h_VW+$Wj zn4#9&;HRAe`s!Tkh<_@8;&etz z_>N_YTR-6~maQj~m`pKz%cq;y0!^U4Y!Ite@B10m{0&7v(xkvTS6`m(aO+g>7p+V6 zz(zC)zqD{&x&xS$bfX@)4Vbv%vTo4>hkyycwC>guUjQcj(t1wM{2mytxH|Bqb3uU^ zQ3AOA5vjuvsgXn?1P%G5W^bWNk|Zi!-_h*rsfDC+i)P;iFzXxiA=$F-Fx7p8g8tJ# zqvC56n!OBC?R5Zc>S4bMC^y%d$}6b^@Ad>+8kcLo&tQK`)RSjO3L->?RahP)c6dG5x zL=TJB(!#?wH8zHCnGcmDz1^OFBqXy2sM1*uURh(bb}?( z*M(MFd;us#3G`!$>SpR%D4CZahz*m&N`XYA}fi96~yv5UWmPCVAAR7UDr9_h~j!XzU5QllOc#56n z(8J=@u|c->6r8un)sZgHs3qpl2ev$4eUbkI7C}kb4~am`PA|*65=P7oSwH2A&{NSO zO!zZP>|+AEPN?IT-F8~$C{QL4IlKoG{?Wh-sG<=CA8#`4kNtlD!h53q84pHqrk67Q zj25v8+39+!-k<0=hCYl2oeRorH2Z1bb|;F2#|a{iS(Flf2SDfICXneA^2I1cZp6ed zgN8?G57Gx^LPmlQ1uC)0*@N|RAO<1!aCMKgr|W?ZG)eUq>8UpY3u#I9_|m!HWK{@i zL8YCFBH?U;h$ri}6M)Xe3H4**^FfpAw@=qei9I>cIg{*ABfWO@L&ySr0_egwx^-eCb@!a~b9M6wA2C+#=s6Khf;j=wkl` zVr*hBr2j-8Rs$rV426{bQ#}gAKo8BnPERKTOAHCbBWQy3d-0`nLC>0gko1G-VlSnF z*e6E}n_mglS_W#`#BKTkJstob_U(guE)A+@ZGF3DAJVf{rT|$^$b)(o-4;lF?$dK= zOj@wL{#?y|K)hSw4=$_2(?i{Q8BL)+^Z?I(SWl;i)VoD^upbf5G1TbOxLUIh>!Bdr zFHfvP`%!UvC^V#n9@ou3N`+q{GitemSmD?7dt8NI*K^4ZLgByaS#&KZ6n;a`qWcl4 z@GE*hGJ{n3FRH?C>egl8Cl&siSK+rj3cu}D`0w2mepfdy0w*!QU+F_0(|LQ@Ew)+228W3quG8BENx;X zByBWCE&-A-7lo9x$=C=)Ow|_8R9#~PZb1_y{TyF97blc-Gn(y6Du`8Xx%~@fH)|+Q z(yxqvpjJ%MP0A$QYz!n7#U$-91`!vj$FB|Re!|2A{MMNOI>Fhu7$IUD3eqyZ)d0#~yBvwqSnM-oTib*rG=$2j@DA}~;Qx7p=DdO!cv0{3f7Kse;8c8>Kjf7-O z&Jg);rY`N$%QUBhHun^JI4eDOxFcYs$+IrSjTWh1u9%%XlMfO71vXY-0|hqT3=xyT z!U;|V$WAau3Y=h?pF&`AZjxQb5+~@a(g!HLziX3r50&2?rUN(n@Von~K376jkx%^ccd z1m7D}zPnVuyCvT#_9tc-Y$@-yKUMN>`!gl)wm*0B?jRi)?Fx}UOCwgB$}O2)ZDvwF zCJxQ^5;-x#h)c{=N-LzfYlVSDzHToQQ!!jn)(LDxuyIYTX0H@n@_;QPEQz=j0D~b{ z3Z8|*7NTqvlo4Q{Y!sB`z(Cn3D655pvxS7S1a^+VY6aFVuw??fP+)ZqmisuQFBjMr zF$Q`)4KsX&z*Yun@A#Q%wGGFMb$xjAxY4x86ZXkG;WvUOUU_Y6UV)1ZGlMSI{kD(! z>=X9gAKU}3n{xL`hY-xF3|&KkbLi#5otxA2#Dk&}vKcNwFI2I3f2b zfew=B(`IjS^f?lJUa;CJ(HG3n60o{nqA!Zp{^BHTza`KC5`EhYHG+7cM30($rkdvO zLsu2{7p6tNT_{_>6o<8HiGC%}m;8K9V1I4$VZJ&bbpA$oU$rq34M3dy1N}_23y-cE67GDHxlW0FHlWxKC z5`~gOt(+)07f5uNI6M_fbhtR_MI<^xw3bVBhLwB;`c_MHro}<(EQuBhbeTlwT0QQ8 zBdwHZM4+t_EfMG%iOv%*>uiwdeDT)J7KxUM*Jrj#v`oAQvqPc_MBm*KT`2nQk!ZQa z3C&)KF0yz(-6zq-7H_BrBwAr{BL1jED=kiQpOI*ll}jnuOAPJb~8xlR$8bEvh z5s6k?18MjFSfWd;T-uDjlIT*aA8$uVeA8i{X7NpjKS|8d=@ws$gd}=~#n&R4Nm`E= z;3KqZWW?`5_kZO2jLRz!@@~dAi5=p62hY%w$f@MzHC5Zou?yIAKN{fGUSpZdvCI;F zj5bm8mVd}yKoWk1VhPb~NwSB<``5u)hZfqW#(#;##CZ0hTshQf@w^%bO0+1RZ%2kobWZ&63m_s-qVwbVN~1uc ziv&7ZqNl}Mk3deLM9+#34a8LwUWUodw2xrV*R+Q)2oWtm@{1=e0y`!!OJMNFT^k7e1(Y&bd^C{w4X^@1`Hw)bKjxrNOCqD`RA@F$ zk^MRpv`Mif63Q)nzQ&Q3DoM7eR4%}8pqA&{7KV<3qy8f5H2XG~+9reA`+)P!6R9HD zP~4MGhTf!BkZGivXuXNJP*v=CkY*nPUG7l(Ted8@k{Hv!0>fwo5>A06SSIc|JblT6%^Q=j<^q7aa zhVLOW1#&(kJEl?^b%A)Epid%E7x86Zu0YnZO@|6(J>LrE31kD`7#0ZR5?+ag0@)Zx z+7{_k>9;DILOp;S)Tg%MedNu|?EtQ3DR5B(2P*uk;&BM>@8I8yi#zj2<}fHfr(;#S zmYfo7p6J})C8zpZK+EGuPRphSiS$e$NAio7bVfp2!W0nWCJ`R?3Cyf%Y^X7 z5mH|A{)J03%cY4e$7w{UU*n^%GpL;&(r}?cJAlo2EeUtoq_<5E%l0f z&q$jdTu1F^Qjro2zEB7=*Dh-WoOZ_yT=7zUQr|=!UkoQRtTP;9*kCw?VUyt=3|kDR zGHf%P#;}j!o(#t^oX)VH;S7cY3}-SN&u}k>gA8XeoWO84!-)*{W;luA9EOt_?!&P7 z&0AlFQ@B2t;T{b4V>p%J{tTxvJb>Yz3=d>Do#8WQNNap2F|~hNm*Tkl|?zk6?H@!y_4cR3&S!Ww!($mPW_TRKVTQ*uJcr>443{uGk>Pm^PhxmJ!vzeNGCY~# zGKTr*Oxgm5r*i#5hHDuvXLuUJix@6scrn983|BBbi{VO!iy5wBcpbyl3{Pix3BxlO zUdr%HhEHQS%8;j2Ob!EiOh=P|s5;R_gE%J78@ zpT_VyhEHdBJ;P@(yn*2}8NQg|8ip@n_$-DuGQ5o8O$^sDyqV$U3}4D{J;Og@xPjp< z46k4~%J52tFJrio;Vy>HX83Z3&tZ5g!>bs+g5f5HuVlEH;cX1JFua}NR)())_*{ms zVYrRqpD^6c@J|`;V0Z_^oeW>c@M?y4GJGDx*E76^;Tsq}pW$5$U%>EghA(9JMux>t zCVtNFTCV>E!|NHoiQx?l?_v02hJVZOB@Exf@J5DjWq1?Azhiha!+&7-QigA5_(u%i z#qbt}_cI)2_&$a&WB7iCyK2biQy%O4Ielvu{)f*W8Pyqnf?XQhJ6hGh2c1cUt?IveVyR|*Z-B_ zc!u9#SnO?YGA#DCw-^@syv?vdDX->F`8r`MHfK(5QoiA{phUh+xgP{ZdU5UfTFQ5f zn1bwIj93Eso)KFh#~ATx^sro8tg~@+Mt-6T4H)^UKn(3HqBBV#}bu^`JlFutH zO`A*OW_FV1MVIDsheo7J#{QnfNk_iJnU!%lkK#6$sxLJg;-4xaswcX&Y;ie%?zHIP z2I2@}E~E-SatV_Q(Za7L36ZN=A zCQ}inVi6T*P|-+5Clwb{v6YISQSmD({y@cjR6It-^HjV^#fMaUO@%!fMG6%;R1BkH z0u@D6lu@ySih3%}rD81=Q7W#X;zlZNrQ&WX9;V`1Dqf@FC>5Vmp-(}PNJTFy22qhu z#dIo4sHmc%mWn1S&ZlBC72Bz}o{C>naR(I#sd$o#m#O$W75}8-UsMF9qUcFQKPpC1 zF`0@m6^p1igNjBfI;psrimg=qjEY}T@dqmIqvA0to~PnXDn6v*YbtE412ct+94dxU zF@cIAD$1x>LPb3l=TfnjiYOJ=P;ny_w^DI86%SMKEETU&ag>VBsh}ulCQ?EF0EIb- zihL@Hs3@ai2^IBJoJ+-8Dxy?eL&c3$+)BmWR6I<@vsAoB#Zf9gr$R>*G!v=lMa3W# zIrJ|<0H#20UQ5NzDC&+BJ7-%x-9H})hY3BsKOGCj`-~+GioGm7!mO4ImTJECCANk z+gLOWUF;!(;CJ!oxZD{ch2@RbB>)9gm;XmD8{#0;yT~6R8~>b|xOgIi^x5rdc7y+Z zw;O9MxQ+Ke?^egS4HDcw_Hq+F7Ww1mI75u}m?e7jr>2;E(WBWv`2;;`M32f7_4u{F z!RaA}_d;C!HyF=F4zY#+f}5AbI5Ol;s%4Abgi2vBmTXP5_E8%bvFWgL`$=P3L#>xx z0{1;G$vlCXf9*1lF(@J7seS!Hx?Ul{vPVxpDKMC7**kb!WKGRO>^;+{i33TnzvDRr)Jd)*@SNPhUHqj%s58qkw5H?2G8lYs}2-}Rwo;(YoO@UI}x zhpa+JFmJ#1M->{dKQ@lF%0wnz+BI z$cG9tK=ZPOI;ol0D zGH3ox;1) zxpERgIp0IMjwp@wiZsfgT2&fr`-b&CQ0aLwMij{ZAc*Yk->tjaBArR|Mb`F@*MWMm zz5Oe$t~R%8z?WFt{a0Ht2DGU?=1TF_zbWfg8xZ~1vVN_iE!C$$8B7A?d-)8L_1*at z$@=bmmYjsoxiLPYoXID-BojQeafg)6u0SpwedoqgHEkI7k^Sj6Ilb^bjGo=@&!_y% z`3xf9o<8c1D5^%N9l7e>OxnhrkEj}?Qt@VYUtikGu-S2Nx<8(FWaqoe%-*Hc3|ftM0ltEWBEdZ#qVMtr%_;$+=(`K!P0bi^;+d! zk5z`RXz9@OBfLC%QxtMO?y^`TYmN-8t-`>!Dl~CBROFWmlD1btJdSqUQrbKA)rxLr zwjCvYpqY#AmD1AgQ^bxux8C7{07u|$eXgj)5H3{e<1ST^s}$q}N$Gn(G%1avq}2Iv zVwlz~IrZ4&IM=&l@JCSef6MhUcQ!Z*C^0T1>-0Ob;%-t1PMlpi)W+)klOGP8BvSJX z$#oxR3g6E^1o!a_={Q&Tp{t3m6y5|k*Xg}cl|tmVqS-(&J$a)(B{)ZA#C-pi@Rg5hnNep@1uBZZ>(H=NJM63};2=1VEmFFYyKAZq``82*i~BppU6!!M?h z4Cm9IfM4>PE1s%f9iQlAK}<%QcC%DQkdNG@1P*rnoBMoSjp_ZhQXhA_iX2c7PpIKl zVZ8f47ivZx=ZC*pvUEu|-#fwa@!u_ao?mC>dsfnM3x7}e9tiWSr2ll`XR1zkoB;hd zqyD$JYaSnG-Sl61ecYyL{$V~oj@}${K1EVledqSm25@|u=w*Cmq<=JsE%FLbJ> zNnk7*GMZYnok?Pa$?5^K6(8j~{ii+S%9P47^&Ws@Xsup&@~y(-HCm5b!ShCl=GV~@ zv~l!KmGcpATp$?iq-*jFx~XgF!EaVcij0PpTC2x0JnlBnip^-PZ_+x`)Z;*2Yn^uC z0J_f(w@*QMjuyUz8gu)Rb!l%YO$-0QwHwy=u2KZKgGrUb!g*`YfP{L5M(aIE z!QAEV0P}NxPd(-;G}_2xie#3tELd?Sr~-A)pn&vLkfL0Pr1ev3(?%-DXs0XP$GH0- zW#3c58vCHN{Q%uaAPe6|-?*XJyH3d;z6K>zp%tuL4)>w{Qo$kSRbZnci^!g_F7z1S zzfRD_+Wsg@_S~~v1mYJ3v5B(~IO}$HnBI+@vP0rZXyj~***>fRxih|#l%?!01*HErbP24|{d_S%}AeikPDN~Qh; zd)AMp|2NU+xLfSe3PabGoy50o@OBbfpwM_SWmiYX6O69nlPl0ocJB;@tt&cS@?725 zs)gu&3XMm!>Bx3E7?+PaxoEjn_nxP)b44QY;?H?K9ww2M3QgQuDzZvN)+k8kZ3^OQ z=I}M5IdS(Y1aXH|1QfpIMfg!->Tg-zR8Ha$Ytzd`pD+T--X;k4hS z(1xTJ7E{_fg!<}*<+Q)#Ew9sx2GRq;n55zO7lZU!iS+z>c8ou*IXeQbC$stfw^JKowjdM53Bu9twm zbKr91+jSjlv?1y0L#$zx&JP*#i0fUTqJ(?MIL`)Is|`&e4$g-g1E|P=7Q?-pY4b8| zB>$+;A@)qkTNo0V^dco(y$mydE9=)Q!H>)zn+&2tD8*z@EM1Exo2)pF9=AK6*m%>B z_waaoWgIu&UPF%?Z?Ey)#+#K)9Gnj~el5q_`?&G;Ir(`1gia?K@B6a;KN>HkJlS{5 zz-CYHjg6CH2fu3P9_ zXMB)*6Lra^x6VvD8FB5=UR2AcJ>%#AlE9vA9L;9|+4LrwNzW9S`W>bg6z>cp>!z?i z?-U4XdMC}KN1aUlN^jCl{icf@n%pyJoB&AczN1Ej=4eX>QYu!ogIVQkxHOoB+oHEEM24 zfMo(44{#}g!`tdHOGPQSY4~JU6oMN);AC#&V%)~XxQ&Z(8^_!Pi}8}hMZ|(~er7Qw z#$rf}#Sms8`VE!+c2hsPG~j-{WBqz_KS7)$i60bbV0F7!^eD&-&!y! zOHQFMWWG0w-&JVh*5B(UJyH-Yzt5wVA>6Q+e@-LdKk%Cg+AM0YKaRTzUzDegufuPK zK8~A2Z-$6QtJR`LN_)qXEZ}44H4WK1$D)u+k9;a&F!orQn+wd|m?v2Fj~a4mcMUCEtUmy&YoW$6j>&L4bN;qX}x*}SM`GPCu_lee(HzYL8TvjEzZ{RQ;m$fW+4^vmuN=jx=dsr=?WFnDYX;a z8mM2DoiLbnN{r}h_4TPb#3c39=_@%^586!GFVvhwH6h80)g!%AY{85x@Di1-moSIa ze&9I<1Zm@A3iebb;}t%My3Fv4SZLNy7o(S>%FNO8Qy1&|W(8C99&y#dCBaj{wwD~D zl$+I4%FQ0F&rQt@lCHhI9sB9jlNxdcYQf-)pqZp;eN>GKV9&mz^_jic#NgbVL~}r0 za$$*}#}fTgbu-DS!&^VNXb^Mf)qa4hL{)~P`@o=Hh3Ogu(_yZ?^n=M<2!`Ai6o$~W zq4?)YrFa%KjIG|S>u|Q7+h>G35_@t#pBTnSRhyVWMv0k6CKl1i1@LcP%JBv#J2Ri> zof~*rJ`IBgKGrn_Y(^F1XcB0)3NtTY^Np8Y!tRdOC@~y+O22rxf4^kmSQAB+O;tR^ zN$hF;Oko0=ngThXeniBpgJey1hsmxW#yJJ*_sbOX6(FjqJkKh(X==abB++lWn8FlC zfLMMroQY+z28KSLE0T4#&# z`Glw~dXQFAu~5@;<~_`-2xFf!S?4t?4Lo;6U;yka{VKDP4 zgy4NFcTDh99ud!FnWx&oK%wV?AkvqGyt2WdT(GpJ_PaigCI)|oDn%cZlo~YqX7{bi zNYO(u!ea6$43q7El|?qFP~#NZG_6uDO+R+?!3dY9Ao8L5RM-Dy&uUpA?XiSCP=qSh zdMTt4igqFDG}ocI{d8$h%qS^xhF=rJnLy4&8%>wwUBk04mlYzik0SC}u3^C;7A9)F z)xzS-+)CDlLJHn)o~%c8UK`7$cc9UUHubS8qHPGl2xQh3JvmUXlo|&Z44aG<>)@$yv*ok+h!JkMJ++svn<& zSlR?!(oMM5q-!wiTJt*7Ja5Z->pF9XMKzMlLtbf3Sff{1Yj#-HFZ9Y?Cn8y7O_-~n zZp~$qMGlGl*Al1$iCrwje!NbK{c4>Q`|&!-vs;I1(E)TqPbe(({L1ZMax$fP^j%_2 zxJTE|wC>TbGokU4UFh{Y6BWNR@01mHnn$SO2u95m$B*e+)7b83xyE@R77P5uWFbkG zDaknLWKu<~G`-wP`U)7Qtw zZd0!~UIixHWWfA?z`vHHn3B1sh`ok-A21TP(KsT_?;o*Ut`GM zg;!}^e1cKd4M#g(jhE5@meY$sx-#ShuubU0NyY;99;HTKtO%*` z5C__|1p2F}S;wiOXr73Hsi^7C-GvuOU8aeqf0VZZ9lY)6ps3s*Hdax3)3{p&UKms; z;@JjfOk}+2AGixYv~YEZ*K5=csoguIcJBa+Egl(3-Mb`p?*a;Mm-Oyk(z|y71-j5j znbuK=AEWl+j{@xxP2CzRtx+@e8f)f0Uo2X9dM^^ax1E6TV$pQ@37V=!lZ;RvhD$`# z?)C6rSkbHPOe1fXHS+=6+jC=(8-8uQV3YngugBeh`cb%wZhzO!?YFGA-qZhr zWeVVR^D6;dW^Dok)NJxaeF!8`A2GbeF^I!dVR!>A;a`~dVF_DLoByP*oz{&Oz8~#b*V*`b%KjI=90u;U!YL8UDscvud&_D-tFP7p?$(dc*VPo~PPY!2S6TSF!+PD8 z;XvsgM5kaMdN`uTR=WxR!|B8khmgXc(k&I;{-pm!M~mXOamI{Y>WZW&Kp&;!AavX> zI&zcRmWk&?nUgT;JN2VFM*W|0=D^oOuTlpx1zeQHelq<$8glsiG1+gsaXaED#W7XO zAHxgwtViR|5WeB`)a)Tp8T`y);GxJu?9JK$KKmR#c!{wam(8$%wbAH;qu?Kcap&UX zL+I8&35HJU4T~0+0xB&BbX5O}CQJ$ISv&#*`GGP;Ss42KGcj;FPJ3DspmzfLK<)Ww z@;gGB9;e3mpy?lg^|g?`;0WF}be_48wwvztr&B$}{ciMUQvI2zS9S!rlxqueFJ*R< zPT+k?*bUJZrnpqd7~2i^wx7t-inJ3o|EJQFZDrI6lxLUVLYbX@h`0Ub!Z+p~5)O1o z|3F7d_zOP|1DkH9S@IOnZOR-``u20RP5I z^|=H6xr5OHH5BE$G4Ixzl)wUH7Gfp!XZQ6utfEeGH;+v2=8@goPvmlnL!YQwi5&e- z>S4<8*t_nd?D0P1puuh>r_niSY^ufEZU$E!D28}TAH zi|s5M4ZRxtT?1`2d>3kdPT)u^c5g-OZXNFr?ACAA!TDzTT7<8?dXRgZtM$*v#F8s? zi`PA9i_acowyxi0jhO@|np8?K^H;e0EvUH5@@FDK8L@bqX_W5bMB*f*#D+df^9%!j zEn-Hy(XLtTYYqI7iM5CQKu9;Zi$cf?VK{6(a|4#m@$I~$rDI)=_&o0TG(8?eiN7Zf z9!3LpJ_>t-7N${!?5plV6c=8q`&%`*b>6UD*6;Ku6zmE8Jsn#<#rxy>zvZLQ9GfC2 z?Z{GzX?0FN9YyUL6i4)b(oTab5SKRIO|C>>Pz2#03v7AVSC=WNHnx#nsLM{`G)s@9vf zTd%40-B_QE_4A7U9_{blTj*CmySR}dh;%ug%>y7MlmU##P{%Jc@ve=kl&uO^;)HEX z^aMN)op-Ax&D7}Uhai85_i9(8M5BQA`WWtQ=96HoH6E>sF7d`>k1o`#*fpI{uL_)9 zrIXjkn5OeAD>zn*A|&0INyayp74!VL4_E!jMY~W0N z!hQSSYU0jjSPnxGlL;rt9LYxnp@Y))Zd-?s6`n4CfO4GBJ0@PeKl+ zEay_1vP%Wgi8jX^%v8=`IKg1%vxq{XYx1+ae&+ij`*u&vNzV*$Eht3X?UvA|LE|Z< zn8@Sm&!l>~=;@Z|)81~Ri4<^3DSu_(KsM$iZtVoM7928EJl>k&aZR5!Wv<$8S#c@u%K+N-y7OLu3Lf^mwFeCs{5VE? zSq$9ga|w1>T3ipYLVpdl@y|zno0Ldj6b>k7(e=IoXFUJz+tB+O$#_PiemJCXaEcY2 zd2$h}J1N93IVgE`Y9|2H=U2}gZ6|Lq@Ykz!yFk@(u+XvK|1up1s5*X#_eAVedw?&+GVq5z z_O8#hbbEmLj8-l2TO{6K_qY{<_OC#F$js2~VY;1WUb7zNO-()1r-RJ)nNMo^d=T_B zd+GKF-7bcK(r}}^9ut$A>Z|r`aR{G=T(YD+&rV^3Z?+6GUB@5f0@rPV>o1vj5I398 zp@Z%-bM#wC&ay}CJnHScX9??*LTaGrU7{x>nE`(fN7yJGL@8$4iP(eL^I%OrWBZn- z+L-_nPO~#716^X{FTdj3|7mKPoeCl|xZk(UPW73ckhk3)iPnkJ?2+@}SdZC*eW`Zn zRQ9~VXkbq~-A-I$_vH~(3yIrXdnoD+pSh+3Cc6`Q()yb%>K?^7dYN~x@30e( zi8}L9?G`)H+=nXL_bC<-@mV6j{nIV{`BL*@KaF0>-DaDpVRz)edr}PwheY z?m5pM1XiTld^>cvo$Z@vk0BkH)32D5)BDx)rt!+PJA7u!esYX->bK3#qAxJRU(Lj~ zxnjRNR<0pc&6FFcLm$lL@D+Ae8>VqSFq+Qkb`F2fx5wg}c~L}}FXp$}7LH2e^q&bv z6{HEK=`qTXi5sLf^m8|ISA znPPs)(I>@cKA}&u3n(JovzAPf3dfz|Lo==CLbT4CM>Xc{>!^bI-{Nya(Pwg1r&rq} zs_nT;?aU546oGlC+oiB*`w{G4tw+%d+a9=Ulvy-8;?K7sNit)06 zeEwWJ4}&xj04DOcTy7o07#*S(Gs=ylWmnfyyuRm=m1xqJ_#T}m+;AEbnz!)2V{Zci zb}`%6N$#Iwk6LO6N#|1b!Ey8K{?qKC4feFr_M~~V^^7(wvTBiP)t?Ki!XiD*o;v=9 zA?)|+I>&xRKJ#*2nCr836zq$DSNrF&0Y6(e&xg2*+DW7-Q9}4GJB2#r_{@XaHn@R# z7woOueatAvk}#Q?%m=k;Z=;SEn$IjkD=~l_*fu!gfm+BL&hoBA5`u0w zVEKlyz!5^xDP+#%^^j&h;f`Xc&-{eFAjdqQfzW(v9SmvSrq7!OEryzfVuV+$pXd9A z#^W>JhdU%8bc|s&LMKs!RPS5YqNoaS3?LWiZf#r;#k;;Fm$_)4STCF>}aqH_{heg)S+fSAO50aeW z@f2rbxc5$|Of!)JyNZ2ZT0-p52zFbMH6E`7Rs9DcD+nhPAe{wYI=tI8Bn~ z`idO~=DLBckf%n*R+fgyy9tbSaw`3zS5(4gFbyuE1U9nuvyP?f=Qr$;fbsw>%$e}PU zVaB#OS3jYbI^H6~#)-VrXa13w=pAr&q=b*H!>Ub9y&W2QJd~EN>!FvdzvNM}#D)`j zXw2Xzbx+sc|A~9L8f>H#gA8I$K$^#v*=FO#XKVp9(Fi~&=E*J5T%q&!Kp~G~r|%M* z{Mw<#^yYHbRquy;i5bJxa1NY^9D)+0L>x4x*=bYl#OYGrJbNy95YPGaJxxs0Xqt@e za&|ZJ?4EV<**(~8c4>=2+{P3m2nr7oJQkju$8+6yG*I_8*F)0ou~SR!xpPUcRIH^= zq{uW_#{+NW6erQQOE}LdClb`ld>le}|CsOb#}VTq>_2N2+`zzh!D9tO-jhD zWeJ>kBA9hlW0Rvmh86UZSV6Cgn8GX&DSeylLa>~@%Pu?>e5Tv8f%RHq&lVWDSpaGH zRBof}J_L`W&JC#XXCP;z%^=f!M|%_+9#~5WR&VnaZeEhg@yPZ)#z{AJKHKQYM}x!} zcEUa!FE(=Ogky#i=-$1614f$pS52Dgev!#N?NGde(a`W9eZJj~fzLz*Y4w8dQoAp! z6fn20^M3+u`kJ3|3N@YWvsAMEy_f+6A~ym22%Kqz$;1fDQJil?)@A^wjLcwx;(Viz z@%Io5-e)dvVD9Z+?tfvW*@JLu1baSjAx%T(Jp?|aOBt8A=L#X?5>5|DR=_8wb(NPf z){NLn#g&Em7w{gzsoNk<|oTJTHRn$}MI_DWRd)il>O)jK_xHG==Ly833>k#t)ehE}ZQoLOZ>j!K5b4W^Ly=lUCGs&|HNZHOy~weO-svv8=sjWi2ecyrpJ&vjB^hwX}82URhsv z&YWggZFWoR`C4;l6YJNmt!#mb8u2%`rST!Ky#qFEudkzDB(`_dcCaZOCCZ9QN@p#s z#?;I{MKJ-~tpv?Sj9yeiQVdyJhdvX(48xzHb zsEAZm7B4(?f!5Tys&@HuV!<9s{_gm7$N8=GjxSVIgcmbBt8&)D1;rIw6P%RnPPS6* zSI~ZbdtL3SRpY}=^x-~5RagtB7L`CexvTh-ED-`-MpPJIV_U@Z9(twCN%N}Q0x%+n;0@61Ab6Grb@bnT7JD^}Il z;197mwjmFIAJa;$S=9(%p%BAP+Q{pjmpbcNzVOuWV)(_Ps&GXmCY(Zn*0g*A1t8Br z!liRG{K+z2iZ#$c%by6%5ipd6!Sd=?b+l_((Cv*a%{7=s=2B8IKfI*q6u4p0tkN)7 zAtazqlgmO|LrZAvIB5+hBDsNu0;N_`KD(x(WbT5Z(wb8jmsB#VW<-<*^8Mwth^`zw zr5g23_03{35Rb|h!oy}QtRmM^*o3P~D#OK^V-<*F-A=`#4OdpoE`qKySfi?DPHEBH znmJXar4_RmhrJ+mrj zFI=!7JiC&#;?1b7aWz6bMQN&v#VnB>um{a9U04C{#Sn>P*(yXFc2l|GAwnV!#o~{2 zQ#S=5LoP#Xqz$#B5j+0s+Eq0O46!wOLepUXD;7%#;h6jv5fiz|ist&|xpgaR+pxj6 zx6Zla57A~U+tI+Zbz+Xl>H-@8%?R!pLdp@?F6(V|7RAO4nIOc@4&SrHu zt6Ek_+ww*wl9-siMNTD6j_Ufl<=E3!w>6xPSj#JjMiI+Ml--!~oa6S)7;8iv=8H6< z6**)xXONh0xdG2EEh(S1uxK&%Ak0E#xVloKEKZsj(XG6sSQ|S&CLOcW+JcQGwiSAV zduJHHkKz}9Ab{o-Wpcbu0U=Kv*Lu~%&c@O$5p_Lr<13!y?zz;5riMw zms;vtAb=Kx;=K2e ztzxy1=_q|r@&i(j{s{~yf(gd|$L7_vb&5bVt8&i5#aIfC)kRk~^3kjnFD^MH?1WER z!OB)4ol|ZyNR8oAnoQaex!P#;IR_BukTco!_SiN`;>i}>_l#KPLd#WVE|S(=0vgi)6tCGaI<(0Hc@`glusrjUm-c5oJ(|Ix6c(zPy zs}|2GnjNMCcgfPQddirI;RFy}H78E13b#rGYS>oo>iX~+qVQCd^23R!vZqcl8sVkpS53BZ99OfA6 zRky6D0yi!-QftRdPSkRSj^wtZvz^u!E)8laRTZ~9pcgYNE?iudNf-`NJVxx-@@9l= zf|XRcluyGVlC7-As&VfdX3-%9#&FI}PIPhy2Z5BqIZ-gSOgPVR)TKxZw_BqjAT~QI z1!)_fE1{Z3Tg|w!*lb9pIc4)>r(l=0nDiQ&IW>;guXavhvm?|?ap-)GkZQIbUad9K zky?gt^%5*L3$rR~D1)o20Ik@{Wtv>N5GU@^l37{>=l(bgVEQQ{kkaKviz_)S@}&hP zmhV|=S`ZGX+1b-W>Spp`$rl?YzgL{!B z<>8t+MU~^mc01>mRpHzt=qnbMo+4m*i!yIv$pXr3aaD$s8{O;Gw71|$!i&~Daq}oj z7E~>uls~2vWqhu&Vm&--9f5FJeM3td-85p9GA~73E?Iy}CFDJ{EF}MOy5GdHt+9P} z5jEAcuBwHJiN>_@A9RyL-YeBrC zqJkAsDSE|*ief=UP_ZL#*35sMO#Wow``-P&Hy`Aj^E+#=wPsD9z0cl3ww=)lOF{Q9 z+0B+L%J?WdI6=zL#DS?J5|e{e(~=5fV!H)tGYhj^Uu*(nCzy7HV;3SBy6soo#AL~U zj?R`#so$Urv_nmho;@Q=HXvnYi{NV=*3Da)?uy@1<^0VP=?Zl|CExe4ZBUd%7Ojy2 zG_xnSTkI_o`t(j3lw>N87G1hoSri7Y-zgsS-R_s^FwDO|M=ev_Zc;EKE#K^wnQbJu zBI#}RtL#Q@zG=awdt$TFe~8(eu}#Npyvw#o@#;{95UuZK@fB;UN?MLtQkq`W&hu$< z=4z~Vr)Hi|m^yi;*=I9ch79Zvx)qhTgC)%?vZrReN$eMIHz@svE6S|DeK7TdPCI|o z&=<^{F~jUR%Z`Zb#M`BjSrA?s)2U+@I{}rYiV0q1YK^|pZh_jhloXys&Xu377t&ZW zv&{;hvJn}d?4;67$+T~jEem5vc4ds8B{uUW+XhiGQvTFWJdiCtH;UNyAp7~!nqp*T zZy$PryIXHFc#II@cl#3XF|ISfTBl&%)fbDLS4Y@3>&Fv0lG3pJTx)0vbZ1%}1rAR4#sI7*Of>imR$JTrl@N)TO$fm%^pIKZMRcwS(qNnOq1kL z?G{lgGFk+a^32-K?10Oe2&dlcjY%&_4v4T+Yw4-}=lWp8`hR;^% z3^R!-GRtU~uq!{)ZJBKy+2oW$(YWfO%FR7(DHcydy^{`+<(!i^M`ki`P>e{im=$ipwA^f~ zN~Zj}o}FUbY_?kznCYt59y&|enQioup_GN zSu}9sn}2F2GQW1`CA^4PkCV(~)SSMOQ(!v6j~o)2jTU6hEX>He!ko^Mswn%Ow(4UO zNa}I%cCoGxwcX%sv1xA_%hF56Y&o5|3hXQ+ubf#hF^PR_~dGd;YKpq zC&g@bn`w^}Udi1zN6a=zaceI=-Pt+MoD!79GPft0?!gzCoJ9ITF%X$b%lZhLr=8?< z(|_-1jF8m0GuAUZFTK5eyBu({@BCCd!IW;s&IN2A z54C1C^4@_fnzHwqS4@z!IUYG z$+tVdCyVO-i3819U70D5>}}Tzr45C-Qc|)yww<0iHR>X5I}14>VuylRax>x*y9-{w zX&kZhZM&hXjTjxGx9c}U42cJ347ZnX*g2b=EE#NeT}^LhrZH~vWp?Q@r|2};P9dc1 zuu`&|SKIoV+wsRQ}mhcE(y)BORh^XkLDM zXXd+;Ep~~EDV449wvwdDbq(0iG5IkU6qucsf`Xa;?8j!x`4*|_#aAiVDA;~hrmHfQ zFtb$6N-6Vs{~U*|1u@(d5Am|#Dc;h-3`*Kq@yg#tUt%qDT)X#OV6HMKv}b!wLoho{ z(zlz{jGJrAf?Ce8psz?CI%rVP3H#R?a(@aSwM4splX*8j%gQJ+S58kg&BJVJx$#5v z;>477=FAc<-WtF}KcY!bqL{0YA~s8orD-y7WSLfLT=D0u_DUczJ+QyYkN7Vq8r)ur zRAE#pba&F7N)hTQ1^A1pnKW)Qut_B!WDa#Zitg-aNi{N{n@P`P+02tAiH)gg!|}uW zrof_Dq0*%m>30n%U^&3`p*EQ29Mp)R#SJ;KW9?=wB4W-A4~aLMm3Bi?>Y!ZtB43o) zJ`$JQ=Bb_4nNM1nUOO>oXxs|Kcpm9S%>d=jsad6VuhooGvTbG>5|+HOYkq}UAz{KV z)=ek|o8su7l4RPaxxgWE$_QIRrDQ!ae#m*QbaQbLs-C;v#%`heZ-REY5}XNiipK2AeH0TS<$@@^~K?U#|a`lPdwK5Tf>;Gt&k%xlZtBQ+;U=EgBGGOf{l2)Rx}_Du@x zbrX78)9e0<7xy-_a`IZTXfBG8p0C6nnm>2;&*Zoe$h8P);O11dl!Ljj!>k~txaE;v z|6q33dI!4f4)l5!J?kU&Luw`ObY>Ok2{K#bY~9nXuZWX2PWF4ZKauSg6D60Grgu%0 zd9XNb7jtrArNpr57M|$mwPM+8c{D?&UTG|70cNJb*^yI2CNEw$R6M>#)?krUQ>5FL zd86))7tdLB(9o;iZ0q;?Y!#49CAdxS%vo|`!fY}1AB9F&+K`0K(L3$s*DRgf#me+R zH`~odb)@sq#ggkh}S?bF&)LK?T>kNW%nD<;YKQ_Jr5$Q7CDTs59yF)_MJOqq~&I3=CsR7n?5}=ze7f5 zQ3sh?n~OV#rgSj%X^PoPEa;GvJ*k7K=Tg_(r_Y!X{11n=Z{NZEGv^RBWo6_SbTHK@wQFb90&&$T4u&h3HLElg9n7V) zdX(ykpOH6h_1WSX4Q+e&pvIW;7nTqXwl4A8fng(S)nQPH9GAFw?rqgaW zB|Y7fk*?bRX!Z!ak9L0VeU?Gj`)KNu_sLAzyib{;M;y;GrJdfUjcIn1v!@uA;;vY= z+?@P3XVnZePMQ#zH|fsZAn2Qz*dw~7xp1!)uGzy40BYm4%vHmKGPA0eX>d-(vsRcJ z0(3L{e0*o`NfKYR`ogk_RVwse9<{7o($eyMmQruFk2F5ZeFd!DepM>;6T3^xFR9Sim>oxEdsl92MEBshc)6j0 z9@l$m)RJ=j=9iCZUdFm=-86SYHzI#Q-rhq+<@-20E_;uYoqm-E5Q#S#7N7gsn<(J^ zE2_)Js;@ZR+c-UWS8qR5E>73rID4NKJuYE+)DV~1`4ywSDnlmwN{oA&|IgxBdrucV zR?DZKH5ygGNB5DV!;`2i7o0dAQ3tXO=Qd0Qr^6#?e9AvP6SUOU29cv*=G&WUjUO;qty!hCG}F^`5Q zB}E0*N}=L^jSyb!r!No{6#H3{(~UduWmI5ppkGRg3e5f9OG#0YmR<78sGwm*J27k(s>Sxd(*b%~C4&l2Euj!Sq?F$V1Iz(RDa%py}n+jbTzc7Ti4dK$Kl%{7? z2*1qmnqIxKeUkCfJbKRX$Rp5#YZrT23>VR&i&R5A6vG~ObF z$A|E7Av`aH-xR_(gz)D=_sW1$fwK1wxm$^$VE=YBL8VOEh*MK_%?MctBL7q zW`revT4c^Ix*q_PykyK=|DP0V9zTf7;;<~YD>PkZgzn<`vwgd9Xr`_{)8B9T3@6CV z{*t*EQD?}Jy=U1jWoWhFvRHK~>>@|~zO-LC=y#Jh<8> znFh#HHkGG4Y~>qxe2&L``TyVgb%s#M*pJ*C(!5{b`QztH#$QPy@ArStTPkxq^MEV! zU-MhZj3bg*z9zWH%d9}<>xRfT^5h$N^20p&$lc7$_cCruQoA}nj`Q?HoA1?b0k|0k zY`$9J^A&iNS*?7hX)eik#^>9KtDa57JL2`3u42MdUBR=k~;V!jA-SvD?(sGlt|-@Oc_>^>cxz$B&PU z`;z2E{LxrENL**S+dVygecl}+zmK@i;LXh+Z4!HaI~{7qaY^#E_@naU!A0J;n-d~m zKwR@R+tcIQy^iE{O}*HY_wC*tBEN~a#_bVLk8gL6$9?_f;4sIhy2t%;Of+$kBwx2Q z|FzuhLrF{FzZoV;j&Pm1B;TB>wp2 zd!?mk@`WLMr^h>+_Zo+{J>JaYwY>P72Vh6!n|i#f$74Kxk;lh+yoJZLpO<|3^>DT) z@ALT~{G|}SCxpKf!p*&)Y+`>Zh47joTz594Ki4r`6zfV*xUAx@!60vL_Gy!FS;cp9 z9|L_VyK-RL*U5X~vP;k(^`^N%lZ5NB@>$w~B;jKBxAOAIJgm{ZMEK?S97p_7=|oK$ z=w2f7Yo(JgX@q-;@M=dy?~AECdRL%c8SE+XDcCN(DAN_;o^)%%Elg^vF*;?Lpp^TZ#8-F?JoAirM| z*LeOy{3EoNa_~#zzYqFr5-;1-Q(_Y$8L zZPf&aiT992r%68$*M962@q@^3WsJ8Php$m@&m*q=+kE0bpuMjqehPZl6IXv8C9eML zAg=!GA+G*(MgOh-k4BvP5nqaSG?KXblTKXyxtzHAGmp6X^CR&+=!eU}zWON-B$rf! zxcbwGxcbwMxcYN3arLJ^@kim`rNn!of2fOcQ$Oc4cYa0_*M6ft@hzAa^(1})`u}mn zKXvMZ>BOgEfmcLa?Osn@?cPFM?cPg#R4Zrr3F1$oKYy0E+TBfD?H(kqcE2J%0Q0op ziMK>QRTlMERN zCgN&$D{-~ElepU5N4zrnrO%0X!lv(c#MSN}#MSOuC^wCp+O13c2*%M?#8;xA;i`0WyE_mbLE;xyes^fMO^JJB(8Q>5m&oU5U-1c_{+q9z&6mSyII85ZV_>{ zyMXvz=nroto`!n$0P%SE^AvIQ=VjvR&jI4<&yU3GHgRz-hjp{YU+vW)uKqM5uKvUl zSAXJ&t3N}D---S$jrh;vm`Mf1)t_sLt3S($t3P)VSAQNNUIFpnLA(d*r|vgs+|-{# zB(MH_M_m2+gSh&0HsYcBT@=ioA@L6|&ud3q{kfR9`qQ7d`g199^=C5i7ctMAMf?-g zt3|}spS8r*pH0NopRL5zpIyY?#D2uP#CKpE`HHyubCS6F6NPa`a z7E3%A{cUgJ>d$cE>d!>t>Q63l^=A(8S?JG~5g&kl`Bvg;_deoPF>im2coPYfNjr$o z!lvvS#J6GIc#!zZD90njr(<0IiFh{VA?47IYI$u&yQo53^Hra?=Bov9%~xmQny+}` zny(?mHDBY1Yre9HYd>-oaovBMPh9i0g1F}EPU4!c2Z?LGo+7UKdWpE^YaemV*C)j9 z!useq@dcRw{7zi+RRQfr%UAPNi@4@1nz-hx9dXT958|4yzQi?OBZ+rvi^p zpFv#nHJ7-y>m|gsT|Y#;0s5I8#M`4?yh>c{zDr!~eokEN{zNsxbkahtSUnqWMu zN?h%pPh9P`Ca!jS5MLMV>v=i!(^@XQQC>BOCm>&ai0?u>T}*r%_AT!qJ{A4# z1H^T|Ya4OhzuHCodgNy>aXrt{3+K%=U(d8~<=&UL#%(I`4~+ z{y09*B7UN^^K&8bA8;OI74h#--yS8t0sibDem44tYtargK1FDED~azzzrCM$ZN#%S z_N`UVi?G|1xX%ABCB7E%nMV90)bm2(+OC%qKj6X^+(mpg)(=~W7sBpN;>jrAeZ-rg zfB2mEsSBOqlf(zXpRzcQr}5GLwmR`4XfF+kKZJeMw!|MqoO=-O13&r^KY)5Liuj`_ z-?Om)p?+S0I9yEpH0FOpiT6SM7*9M7@@t5i^cV zt^k@5pNKejB0e2)OCa7A^TT1p3()UOBz^>T^N5cCpG#c#>z5M0AlmuAg*c`a!FJ+H zvF>`Ecq`=VAn|n=$G;-}rOsQ3$6$SG9?@r$#<{DG3&i8m&om`|1$Zp+J*}MHc;bz* zKafm(J?dL3@wSL_F7YnlbBK>d|FDGk5cqRD@yF2a9wZ)({_|<#$Kd~K#7|;edyjZU zl-HNU$D=$>5?=>i4&|fea$OS_&sxMY(f;QXUyAwCYT|!me)Se{ZI4HZYkT~Sc%(f> zJHOP==g_ZqBA$$XDS`MSn4b+Jo{j!$BJquA7kR`FL(g2|)5I~8mPXr`$a$Q{5T84U z*G4_rLR{PRcH-KuUnj2Z_aO0KQLnxt{xx`GjQ<+Xuh8Gd63;|EznHj=r~Qd9NBta4 z`~}2wD)E(pOS6gJj`8tE;yMoM^<3)zA;@nac|AW~5%pT-*Pwl!M|>3G)ttE6?M(bD z)Q1G(dcJ-O@llvRY$dMa*Dm7g(C_Ufehus%Ccd_ei{}r-7odDk5!dzFkf!c9jn8nj zuZhIFqW(-LuKH&aSN;2lFT&@~iEA7xV?0rRlqV8jh<pAF$Z6IXv~z>fN_{xl|jKKyS_{6&njal~7TLX!p)*Z7YkuJON<_;$qopTuu3 z>-0ZMT=nlJuKH`BJ!yV_L_eHDT;rJ=!uJtxjsE8l@nu-&9w$Bo?f(>U^}jOeullL} z_apu->i<~cC(-Vv5Lf*(iL3r?#5bWFe;}^$X^!}*pKCC0>`Z(#$|HsNEX)Tc68{+U z`F!F{TDx+eM_lu@l(^>WZQ@Vk^Jm24QQwXcSN(qxSN(|?Cp8Y+&|Vf0*SOsi!rvqQ zE&9o?h<_aA;_w^syAb~}h?Dwr3+iVz;x|D40^&bKJN<2lAIE&SJ8}8lvZT?(XCR(a ziO<10=W5~_pAE#bq32cND*q1g8_-Yc`TR=8H_58%8G-qZ@@J#XmnKaj-V@`HUI(i3 zH4ulnBtH)MT0(pm=8NlypHtb{-AsIRh<6Mh{re_94D^lJ5LiI+1edYwY_`QI9EfvzJU02 z^lNR2&qjVPCVos5nlylTS*)YS5ZCo}7V#ccot`U*?}wiYiH`+eO}ri2?|sB?gg;LZ ze*pR2Nqjik#XjO2Q7)enzXAQo55)VT{{KxJ?gUjjxO{85JW}3$KA-qnw8u8YSEJwS zLHr)n^Zvxsb-W;+it%*{@%4yL5pkVwEFiA)ja9@~pda2qJP-Z(Cw?y4-512SpxjRo*ZqOh z#OI;Bs>HhbrR7zK@w5T)PMFWPB3=*kgo}u`gq|eg_d-5}xc(k2jrct1Y1^r!pLLqK z&s~UXy-g&p@gGK9|Z<6XJVCF7?3Mm^$3u`cUCd^YM;0dbvITti&v73+xW{^9+^FNk*jZ6&@3>*W`T zKZ5wbMf_UK(>^5L6Y*)gwCe%H z|HQa6fp|XJZzk~@FfJ@2-U{=R^~8(NPd-9?C*rxC_)8eaUmHQ7*Z}8-ia&T+g#EBwil%{1)QxRCn>Zi}+87=Yzz{fNvxIH~N8{ z#Ggl;-y%K%Bd~@PUQNFRn52D}eMf~S_&W{1aUqGBk z5pRipcoOk95$9au4G^EJh!>#0T}b>&^l!HiUkUlUh(C||{~+;nwD)bq^>@oVi8qOM zad?aPs@9HwK>Sa%_b-X-?=62Mo`e46Z{kVtv(m-Rj@E~-QGep{cpH@aGUh1vb;K88oZUqH z)AL*$A18ha`gahYhWfdixc-ju-^5d}9z0CEsDZP4jCd;gnLmi@?`kUaELrX|P%brz z|AqR{koY#V$JWF@LV0y1z83vh0`WOg@k|;*{9@#5Eb#>G|A|*bJoAYkMn5)}cnspX zi1=RkxrTV&`OeSv#P3FaA0eKN_OhM$U*NA0&%wNFKk)?ghlhy2T+aD(l=!33j{ibj z?^jaxAMSf??-iiGD)E7+KlO=sf&a~k565^NOZ;8T9}t64_(+U{V~HO`{hUl( z?>~}H{B5+yxx_a%b@^XJ{Cw1hHN+o4KenEDc^&tOpF|wC6Ti5Ev-=A1VaV5h;%_1T zhlsxcKaUb`igNsgcumyjvb{={`&Q_$N_;2UU47znAm5z${f(X8SmHg=e_lfTKz%1a zi1?~#$0rjn3;6=#OELalLwpY6xs3Qe)T`TxpNqI{CSD%(a~ttw)aM<<=c51lH}Q(7 zZ-7BhZ$f!hB|iBAC)bAfEcCar#IJ1Vs)y#9zgD z@ec9FF|YWA`12^QQ^Zdpp4H=A{MFSjx!O@ zro=a*-|j(tGv;+8iMN3NQ;63^+~yG1`>otbe1~%{*g^anj9(uRf3Ueb;1A-P(9fUK zw`6`BVBBv({12?N5{SQ!@|r|^F3Pu%cvI|G+yyS-1+tDjN%9j=51;qAOjR*m4R#Sn zu>|{wqj?7J62~+n_`u`Rb!IfR?gU?WTx?EuIQW|QMDXuDE_%A5{`~53(X$xxe-fV$ zZXX0>-fKOak2qB7=LCd{o@d?1pepgL;1>}83A{1!BjC+FF8-f~{--nXKIjK}d0hPI zf&3;A*ZZ9J^|K6JKLdUx@h8AOZ7y{D6OW5O z&0+U*;!VK61D9<2?ewH4FH_HtAz!Y)v!nI1C-_;!dw|yfXZ`g(dC~t9E~54ifD?A#9?@Z=>v`n%C5JudNi0(zb%uJ<3`NnG#S@Cxx4 zq33PlpMoDCehB2dM%SI8eFeiHl_aE-%B#No6jFZ$1ma$i&%;9j-QTg{6pdk!M_O6|Gg*g>;K*3qW?DNIYs zyb|%v;MF|t+l>a-INXCcv!_=n*0 ziN6oN5?u4E&sn)6gg-@kzJs1;h#v)iDMZhkA^ZsGIR!o65dRbWN8(k>nL;q>7vkrD zR~Y2J*Zdww`Bn?zt--ZkHG-b@#4iB9C`3&)IzrEQ;_bmRiR-#PoA@P=p9!w{ zo#C<{EF(S#{C?t#z+WK#3iu)7+VA~MT%T{$a-Tv6Tboc590b9l$t|I`nebKt%+-UNg%HC%M&+m;UV*$iGW`8Tbbt7d^V}`@-X*=V8cyP5c4y z?>#PhbRGAr$3@R;kpGkTOW?s!BV>}qP4wuxuad__&*zY@O8gV>S{@fY^_rSLCN(DB z8v8SCJTCgnmbcY!hKhr%f`gNW^-Q%MF9q757xZaPx2wa*~RrCKj^Iy_xlCM?4@!N=3179Da zXG;j*MS5C8&#S~+g1_Z)iNkcn;kd_bxj_DB;unGc?s19Ra8YJb6c#4ht_MKABJn=p z)xkAx`h2+aLU`v8{*Mqo5?uY61iNF1PXwPtJRf{A@fqOL!PWo2To{5S#Pxc)`-y9Q zpC|q``sa7R#eWI$JY5HQT*^zIH}D7XdGPbJ$ECamL(kd6%m(>ws&1 z`$JEo5Z)t%Cx-BG;Oft_u$xMJJ9rjxef~iX@!gOw09XIdhyS+_*L*!l{CCLjCVmb0 zZ{X_x$FTbs@%O>Y3@?tql*=19e^J@vQocVyz8dip;Pt>YU(dsz#v#0C2u}*(mw{`( z%2srKrx6dprxLFTo=dzs_)Kv1e+m3wMf^eVt;C-M-%niQ@Ey4LFYV}N$X88q`Oth_ z2!Co4Zv@@~T>TsB@yX!hiBAO2Bz_}!Hu3Ag^NBwMUPOE| z_&jjV?~NgRLkNE;gueu?@qZb1Un9N?d>`?5!QUl*0Q^&rOS$Vl+czGU_Vpd)zbCHO zwf+LGaTtSgKkdnje*K+D)e+`{Nt&-(XSvTciPr#cK)gA4BjQcKTM~~0Z%e!fco%T> zU-v_LdGg}_t7sPkJYL)IH0T*Z{4(%MiO&HaM_jLm%pkrR@>#@h2EUy6!{9TCKLCD} z$NhZG_jqlSua_Zz1MwHZSAuKYZbZ4?5yGDe;V*>ngWy_EK84+nh#vw!Li{-RH^h&D z{|v7FuY&)lLio8OT|HHQPD9Um#P#~aCg7~UO$bjUJ=M;3_WBa90-j8~5%>t=7l2O& zSAX=pKwb!66v9`A@GamPpANA5PvY&s|3&-~@Mnqt1AG^_`rjMnb(pw5pYku_n%{Fr zxwxvHW$t6pFobsx;RzvpEV#yD2>hQwd=U5);uFB95g!j;1g`$y1^?%T@O7kTI`rH{ zd>Z)uA$lGS;jfXNInc9*xc;vHUE)h2|32}>;77nUzkQM4Q^ZGuSGv@_QTc7)O^DaS zzT(BiAs+MwmvTJU{BMZ`kyi=AZ-^X zAzz;O3Gmv)>&k&9)gxXR`~r`QU0rv#@VNLt67p?`4+ih(anYmk>EUtFvk>yVh+hSs z=y3^sM+vM+BRnp8o`d{o;!lI8for+sSuH^@)sq+f{h|L#kBj~T&@+elKJbOazXV@I z{4n@R;$E?0Ke=qd(Bz`w|67k2t`xE~s_z;ha-PN$03a);RG~Y?e z3gPoZ_>vHQAGpL*^7SJ8*-ZR-@W+Vn1AmhE+u$#NtN*u(^CrC>!aob)M?-kou}+`* z|0(QNAbtqE8u8=cwTK@BZv?LXJ8R}y_MW_y*RS}ZbBO#uNWK!vx4*|F{-?Y`JT7{wVGv6tUIjb{T-<vc^_Judp2K+ny@&j(-QanVyC ze@wc^~YE0 z4#@vTd>eS>aYo1_jsHgXF=z#@_4y>^+Y$dB{36nW=|d3b$xA(X3;G9nT>L!0iu)p& zcs=kjA^InI@}mC>=+E`I=-*c@asM9+uZ~%@x;>9di1I%FaAu1 zo;Qe30DqtOa`2Cd-voZx<5C|+ooCGk-+5f@{uA=YiR*LeP7{9<@=@cRKCKV0gVzF= z{8o1&_HP?cUi|r2EB9p=kBdM0JM`|v4?}-1kBgq6^_`x69v40B<)oHLgNU~VALel> zuS_c)1Yst2gLPx4Tp$72l=mv9|8ZC_$S~e!8Ja5 zJ;2|dy!gKi{@1+Bz0vwvuA2K?hj>}=M#SraHzi&Ryrsu|yFENEaf^j~FXHXNlfgA# zO|h;V6T%Bg&p7CrMSKkSb)+W~`WJ`rO{Av)dLATxIrvu6qu231=gCWa*1PZrdps`j zSqeRSiQfeNKJoj(KPJ8b{7a9E-L0_ugU7}0%aH$xxISO-FX9IwA53rxwO+jgULIV_ zaWD2UY7##S*BkUCUK@M_@oFfqY>(GKp5&#-<4|G0y}{!$?r6Qb!{ff5tsWQoKCpX` z_)XwPi0=UZk+{}})5IqtKIf!bckO&b?9Kx}kN9%%=ENTd??Su|`nLfd_s65j9=Gv< z{A`c=@(VmJ@~Mzt<8hIX2jAdvoT{-Ieca=sr@N&=@C>-rE2+0_!FPLH>g{pVx3`EN z1Ai|>|EHe3=)VN|zw@~0KMR>YPP_v6@5JkYpCVodyzE40Nb`l$nn7ici`|ZpuSUE* zcmr?=uf#3E{Fl^hqJ4?fALW;TYdejHo0D5*1pAY_Oh@QP6{A<#)3VOaHehc_X z;`;p2--)k>{Ml)NO`6}E-N&G22yX|j<@E&g#1Pl#oAx0766AXk*XLIBCH?{A2NKuk zo{k`X6!N2q>vIRvz{{9?O8wXTP7UGLk)Ge7e@`*nNUPSx>@CC&6d9*hX ze-H9&h*zoU{9Z@AJow!nm+|y`CmuZJaT(XTK>kVMoxpby?*slS@dWTa;8GkC&qUb$ zf;fib;4k7+AYUoNy-_{ag17g0SulAS3a;ff3I3!I9}7N-_zLjJ#PvR|Gl}bSZLcK0 z4SE(5{|259+&c}T}yHs1RIIh1b>3~h2T#SZw&q{xWrlFspa(! zaV@X!h--QML0rpgB{nX!J^n3*OnQ>Ip6@$GTz{urezH4G_2}=pnh^gS6}@{19~r{0 zB>ousjTOXa!2dUparNh1?DKp>JQn*xWwT29ulKF3N?h+-+kkj?DSVT<5$_ajaWIPb z>)4zwBwkI&Q{uW`eH(Gzf8Inq9ToIp;?0^mf3_0W=Q}<_{B6|#oy2dIMqtwG#240a zd@u29v0wK-alLQt$KX}9f@eeGv5AYY#N1n{cFZvwAL zd_H&s;+w%65#I#f5?u2oW1gfKPhLW~5%o4MM7}@C{|oXXJudNi3U3^yqX+j(l+9i!JjAI3Vavwrr>+P)&J&BeekX)FaB%4`kBW?#USW8LcAaN zG2&U^KN8OX|C9JN;HQaS4Sv>C=diYywczIvUj<&n<9@#Cdt5{xg?vNe4}rG^*SL*v zZUmh?dC{-Gw@UE1sCWZ<`VfB|d}xUN(Vo1oKf~jq;zQ`kBK|)3<;3-QUNeb*1No~w z?%Q1qu5svxIIIfc4~6h2L-?EEm5g3-gLnm$`#|FQJG*q^`a8P< z;?1GwdgA)KuzQF{qkTR{Tz@b2Ch=s*A0mD$_|G9cs$$9b=;3E_`~@K=cI z`g%X{t;pAB#IFTEL3}xQaCXT!=7rlsD8Da6Uhm(p^3$N_7n0uy zegQUjR36nh=o-TNh43jJN7rI4tRSxbKT3Q!{CSJ`67V00e*xYBlLPTz>?-d|T(2J( zPy9>hnM=H{C^YFNk5_ld{$1;Fv8&f#ZS=S=|3nDi>2Y7r+a5<3Y3+XLabLbX7H=Ad zx8Q%h5Z;M+R~U)&I8LQlyF)|xc#n%edR@vCkNbKGJudQk{n9*-`|`^?F7kT)$>tFL z3UQs6zfb%C=GiBR>-8Idc^p$D8;7$|s2XRLKQDwg^SG}k#^aJNZ5Ii|6RcJ9JZR!c z;8`L33gX(n780KTJ*z|b#t^=hxc28Shwu+W__rbaj}Tr7l|$pNb{m9neI5eK$A`!# z6W8%5HH7Dd@asK}C60~s<01Uh5MCAg{o=o`rz`PxD966U`+)27TSSlFpWN)p`~3M3 z{(T5P7yG-aU;SxLT>XjjIJ$Q0sXq5r^!R*Hi2MV@n<2mdBCh-VuMx*-tKdW8y6^NG zan)ZP`*Z52^41}IF!AQ_GdqM|8^Ui3;g1pT3jNO!&jsH@d<3{Y=S1_R{JRkOzlisP zo^#H1Z&c4vaP0$SdWx!Kzd>`i`-FZyjK*=I$FKh#JudyHrZ~J2d4JxO>~TzmESczW zzrM}zIEGwHuJJgA2ut)>u`B+!hMd+f^p1%)@na~Qw>>U#R{xKL@ZUV{$6xnL? z=hzUQ6v9UnzXbYoiEBN)hIn;+zJ+)<CYj& z679R{`no>xr;y*)#Ge80L3{%I8Q^iaV2{xI(TbSgzv=bV!u|ejny1I_--jkUgB}TKIr{l#jYQ>CUTHT(r?!@|8;*=>z(pk5i&{pIpxo}(J?|}CpdHtQE&ZAZSe8fM25B0dp(81XFdQN(rsZ5;8dAU~0~-oGW2_^pti zN_-=@_FI~-N5Bh7K5`#>;=3U~m-zeO^ND{0ek1YUz?Tx&`*Yqxyf!Mk?yso-jlu6A z`Bvcf67K@OiFiEt7UFup_eY7RKz=*8WCzF+ZLh-p_E;7|!u|HB_qP-7w@1A%lyJX2 z7JB=HetX;~fiX$s{r1=ejZnDX9;3}?N#d68zwU1d^Zj2d!X^p#{oiY;o6w0-K>Au+M3eFqIqh#!=iIwUnFrej8Cerno`8JW2mNy$aY1B<5rNBQm*~H)U@36ti1e!q$2S$#yktSeg6Noa18kot~`k3&B}D0 zl3AEKDKjmS%tfI_W=~-#HQ$#8@W>S8tn9j_dlAW8Gnx2;{YLf@1XD6F~eI^wp zm8K>ptFUlJLF(kp!t|^pBRsV*B_=g{_`o44sWGu5B%1LEX0aAixF+oXDeg(JGtzA( zuyR!NU1#LyrDqltq^4))7p9tekd*9-knEYzB*kVJJvQ?hnUiKtNzKlkoM-BoeV;aI zQhsJpiLZ0=(sQy43bpP*E?+`alI7=4Ia4sl#7&i(ilc7@r`pfydDEw7=9)@wJ<7~V zot&RGU55nQzW&!g4a|Yk`VV!n*D>N*q1!A{Y8d}eVq@Pw>DiP(4=VlxA>19kFNunpO$v~JrMBwa?zs4>FYOO z9REil&{s0&C62#jv$Xto!@}?y953;gAy56+_*XG@#1z|C5U-9J8A);WZ}Fc_A;%|I zbTY?_MeRHGe`Lt3Nv?qZlK+OK*gp*W9nE)s8jJ~Vw{^UKG3D)9xT|cSD Fe*mln#(4k$ diff --git a/programs/libs/libnetworkapplet/Makefile b/programs/libs/libnetworkapplet/Makefile index 8cfc308..890670c 100644 --- a/programs/libs/libnetworkapplet/Makefile +++ b/programs/libs/libnetworkapplet/Makefile @@ -4,7 +4,7 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CXX := $(TOOLCHAIN_PREFIX)g++ LD := $(TOOLCHAIN_PREFIX)ld diff --git a/programs/libs/libprintersapplet/Makefile b/programs/libs/libprintersapplet/Makefile index c72d090..1bdf255 100644 --- a/programs/libs/libprintersapplet/Makefile +++ b/programs/libs/libprintersapplet/Makefile @@ -4,7 +4,7 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CXX := $(TOOLCHAIN_PREFIX)g++ LD := $(TOOLCHAIN_PREFIX)ld diff --git a/programs/libs/libprintersapplet/obj/src/libprintersapplet.o b/programs/libs/libprintersapplet/obj/src/libprintersapplet.o index 234bbee994f6e115c61b2bfaa9678a594f20362e..8b60005a3de04de84dca03377b89538184f9242b 100644 GIT binary patch delta 3499 zcmZA4e{54#6bJC#0b>YE3SpOv$ylQ-gW0}z>wfTKYz1W-!;ujr;t#MWASxpR9rANl zi6DxseB*SWge^cwkYQcK1k9j9CLsZ=M8XVCi*brUv@tFs3ZD7S`@_>@uj%>RbKkw^ z-gn!b+@;R!QcbyPYjnbe(df!7%&Mq)ID1B3UcN8eAMoaTec7HBbt^rqmOSlQx3X>t z(la|dZe>~-9lr4+2B<>_=B_athNb-X3fONcchUQB`U@bQtIef>c6hGPRZtVOnU`jV zmkVu%pL8qt{Gw2e&;*V0+;rEQLR^SY-n~QZaJ$e>#7Jkbo)-EClB6pJ+2Jcf=fFKt zSN)i7hyNCu!hH@=HaIo7#q%32;!Oxo)F!vT8NED04X1y zwb{aBE)x1E{G=c7d~1X@AVhkOYqeBp4ni%BZ!gCj# zUT6hEq-nfHy+Yd%A$^ti)or03#7NI@G?RCbQ^{;3NyqVwyh6W$+ow}g2Vt_$Yc6sZ z3q_+J5cX-4&*g3qx*AcRrPd?i)9My(`mCyFxb&T(}SrMPk2a0n{Izyj_dOtld zeBT=)>o>HLE^{75F07N=ia6;N9!ZwaQmA}w@>q+6?uMUq4Qq|i%?Och=ld=ddJYlN zNxYDogk~c~dWWOULbo7E`VnuScA>}NF3@HlZ@w;}`%qh;)t^{iU>P4jYJH+j7NXQc z2Wtk;&#BmDBuG2??m0r2!4=Tv2(QI7p^qaN(8^#zz^dBI>r^M&4CbEKiTF#-!zSX3 z5f4~uEmWbdy1`>UD%uR=&!36-DL$~yi}((N3blEXYuGFFDk7w>^Sy2hJ%$+R3Z6wK zzdO}?4@uGu+_P8c9k`1u^)_mYw5j0wEEH|_AxyfHpTP#9PasPA7}x(Tp`Rl`TE-(k zAaple#oAPJ)LCI?KQuKx?ta-r{su8n)iO`^>!h?QtFmh0CnbOVy4 zKXDD(g2YH9r2|a>V(yw_pZ4-JKanh^2c5OmOK~2%- zInF&MbT0g)r+HLg3f+kiX)pie`dR2dh>*_bo>O_=&U`;ajPxSsIP2_a9+IS=awVN_ zGDjQXo~q4pUWHkr=fkKab=LJMp|=qxJC0u2OBL zb98-%{pH#JvH!r_j9{syuA#ovN*zA1qph?@sXm0uEJY_p8U1kPUQgZq|GfQ3kRInc z#f46VtK3p_nwM+$c3!1lM4RD!UemuB<+`J(yfRH4MEA@S>Lgk!PN>URP}!)m(Or2$ zy^NNsM)e5HtVXpLEp#0NQ(d8=2vrxW0<=_@sr%4P*Akf7W$HUDplcIa=vt2M*=0jU NJYWyM0f|}T{sn4DnNu>yOV5_B;5zKHsO$ z_xruwnO=3WSA8-=ZH^V4o0v0i;dA-Vl$4YO@`It$veE!rCY`{YiL?7NwKXB#Lr;Hs zVQv~W7iD1ajP+_A;xn|FmN_aO&$G^lCyPGE)884SNMB)nUg%u-i?rD`&Izv<+KzCM zZput^!dr#TQBGioh^LJXP0v2(dZUt^3O1gzB;1`+)n{+SFs!FJZ1nE~}oB=lp)lencY~=dv5?YHO zX+CSe(EW&zF3oUy9u&F*J*4Seje9~X5iikA$HqEsb9wIWdf(veM@4)xk5w$Pe&A_Po$jh?1sr+nYiYut`5=_459>)q4vGQV+Mu6Pg26s!fvHmI>`bkaRq2v(Rmb zkS^tFtP)y{9@02#yU>}4lYTIIq3PKvbTv|>k8svv*s>!+iGci}+N&xmkQt+-eUvdAM%*OfI)65IH{h0y^&;_fReLuXHp7 zO4VsZ1KRw|(_Jf)9)}&!YBi1rEb}IBPp`0L{111(z!g!RiSO@ zA-&4i?4Ho&h?9aBnac%t3-J?Dq!w$j&?)ejY4ahMph4&wgh@B@2Db|BKqu)SALtE2 zOAsT?<(|8RrjR6U<7)H?{T#ko+8pAeFd%d{>PdHVHO>pYiRdg#6~LyP95yfa-p*&?V?3y})g63*Cem>DN4N7GG_*GAofJ{fM}49_OBWg$AK2=&W+|8=*A_l4f&F zhJ=2J2x&g+RiRnvsn9rCk>R^1M_J9=WWjE7CG5SlCI-%`-EPGuZsQ=@N5T!dQndrW<4+T z2SiCfWxXl%W!R)sc~`xBbKEM;L4vfDE9?H_b@d8VwKjF!W0`3CB7)Vr={NrNY8Ltr zpVMU`p3N0lCE^w6p|Nc4?LDDCB2Ma_oZUh%AVoTcS8-VA3izMYW)4Tc7kU(7(k@=( zh|r7ZB>jW+Z=sEdk@oQkoWLt~t9Ken(kXn`rwKg_-&6EshI@Wm=podT?&sUKOz1G8 zqMHXl8B^na;3_sk6*N-v4VNrvs5X?R}8l z-(L6XSoIl_a|hKi*z*R}Fd~f|YBG|IgX$gFO&w}6{LLL|FKl|}z~3@Y9l)BF3RMWZ frB+QslHLLM=hv!>h|qf*YzhL^mE5C}n diff --git a/programs/libs/libtimezonesapplet/Makefile b/programs/libs/libtimezonesapplet/Makefile index b1e60d2..975e003 100644 --- a/programs/libs/libtimezonesapplet/Makefile +++ b/programs/libs/libtimezonesapplet/Makefile @@ -4,7 +4,7 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) CXX := $(TOOLCHAIN_PREFIX)g++ LD := $(TOOLCHAIN_PREFIX)ld diff --git a/programs/libs/libtimezonesapplet/obj/src/libtimezonesapplet.o b/programs/libs/libtimezonesapplet/obj/src/libtimezonesapplet.o index 89c9dbb358ad46d8fb535b20b5f4e7ddb1240b37..4f10ca181f69a6de7150d2fd6c18c790f8a79c4a 100644 GIT binary patch delta 3495 zcmZA4du-EH6bJC#@_uaE5xLxw%oPKc&8_X&#nUnvi*hm1^K@0ymjk0z*azQ+TW# z5pP7*ecDv>SY<*#L4mUWxZ*+`MToo-dKS?DIXz1rk(+XF(cpo(+}w>=^BO+>u9 zzML!BBXl_5xPB3D<+FE9#9y{1n08CV^SGbUd{XRcpSJR#eNL0jZ6=AFyAkwh*N@!8 zETN8JsPpBk3yAr&`Gvm%){3M8Bz#(J!hp|fw)6Jv6*)KI_j}b-2>Z3!#mndtIc12F zF5^-9gf^m+^mo2yH-xT1iZsTH%;bXGh4=yP0&N1UIYM($McTq8C=8JXqq~H5z)!lyzKTK*BTTx2qZL98qJ>`d0XivXgni{i&T~i= zYE^?#MP9RYa7y$#AaZ^~RgpGhIeJ3qH;9n#;&ad=bQR*HeZ2N-LSIFaw4KKt&2zLX zvkuN;ZQfy>ByBuH1Xz9jT9sOj2#%RTQE zS^__53rCL#twfmA#Wm>?`Z=Pc`K*0HC!mw`S=JjupG1nZi0@`5pF6u^`{ACUL(lLz z&k;I;?_IHokL1r~BK`*=GqgF$GpQDO1@RePi4MrZzkHR<;Vggdpiz zo^89(J5fveIO}<#-yueNkoB_A^+=HB@y&IR!~3#a#9ds08WEq5P8#bl_x6I&9;8USd7gWO_Q5?{n{lk43Vj+?q)Rz^ zO6W;MNSk?$y+ZpDC;f-@y3plFl77Z3&EVT<*Y*OObF|6j`#weJR|t~UbI)^y9z!kZ zA--|Th4vywdW$Q$QD_$ur1ouT5;_hlpv^^&zArQmKj}2CWQWi)gacYNU~9mu2Jmsf z>qsBk))VMe>N>tG@tT#q)`mN*Z_mNzga4AykLprw_Va4GgdT&xRI51%m3qwz-v54) zvlG!$?MP2=J5aiLxVi*)`Ef^@2YuzY)C43K)~i(rhmNbS;jXAxZy`p{pW&{oSC1f8 qS+3$3sGP1Ig!}#y6+)Pvs}Q4SHj?!G0`5g6>P3X<`2b>z?)?{*N|Y@C delta 3481 zcmZA4e`r-@7zc3QyJ>Sy+g<4EJ2H1Ie{9p8d**)I+P%vk+x&UOEJvo3gw(QKiGdo8 z*+5-tUcWL!Nx8E~B*oiEa)j#&md&VL5i*6*6*5_hUWsTz+Oy7c`r|pUbKv zO@0RU&uCVgq4KqvHhRQ=*F5JjB9oru=;sn_($`sE7CIkIq`SsA;bx)R5Xsl|qtl%5 zPN8#^6WAl-X~RR)b<}zMKa=rD(O73ZPWY_QQuqqA`90kU_X}Nv5NR;W3Evj_3))B@ z@VKLSUTy{MB1XD{E8r8FizMksJgZ8f7QBVpoEYg0xLv45khF#Cb5Ljv!lZeu-9nEc zO1dJ$>A6?v9wbQ9xf&0JRzS_v^{X^#J8eprZ$UstXiQ* z5g~npE6^yk7je>lZo5V3Wu!>of5Mq(htLZ6W@+;-_uM7aj}U1tzqKBrhtWnF=C)Ua zUOf*nvEc7lG_#wZAX}NENg?%U5Jvd;A*TB zT7?8@oOPSfSx}ZXAB=S>c|hoT*rZQ$+mk{E&_o*Kwikr%M#R#sm0Zc|LjUG3!z~d% z$b0XBh=+LZJreQBd~!2+r?}Pbaq=+T?=?BxW{Sx1BIMV(KXDILLjO$14u6rlh?rlS zpLx0)MbdLf`n6h*A-`qb;@5LnTah5W$;a%W z&{a^y+JG0C!v%K>@grH>ycK$ccA|~6ldEw>=pbUVEj0y6%E@N)a8GVcK83eLn?4>r zSLhi8Nmsc?QD_ul(j^>i5IP3Y5=$LGf^vq~wuzjLP^DU}fGM@irr{~kbyDQ~il$O+ z9`XDy2>lWf(l*`)*M%-eob)QUeIRr@Qly{rxS4#k-O8+iuS}bLtW$(;MyO1y6gHGu zW+zu~xyY$RjC$zgJ+o10JCdYJS$7Cs3~#wM=eXy?LTv;|_j2?Lq16bJW^qmWgnou7 zX&&oMp_xdO>jM=T-iHESfvV7EIv>j%-g0iS4#BR_^{??3FAzG!2ct~H-7#uK{5M2s ztg}4DMxg_US6J#35_%mW(m2nyN2mvFq#@QTLcc?d^kddR zp=*&Ooy;%Q!w1K$(p-3}v?=1sy1#c_y@4QUfO{+!ZC^#WO4t9vAFl?X|L`_lDdJgN zfpsEYjs%Sr<=);C`UBJ)`Y7-`JB40_O*)eGw9wUPBAv_8Z-t&kgtVR4I3V;I;-vRj z{}Nh<6loXlz;V1{w|W=hdtRGKeAK52J&h1)n0tOf=qa?39^=EdQfNP7r1!a!%|gFM zlJpK&qeJLOc&oL!%+X^)k0VGrmD`>dT7q!3RxQ|FZK)eLS8aJ7r*#ij4=8mT-`7}X zDX+EtN$0~k+Ln!3%8C< diff --git a/programs/src/2048/Makefile b/programs/src/2048/Makefile index a261dca..b4d35dc 100644 --- a/programs/src/2048/Makefile +++ b/programs/src/2048/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,34 +24,22 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp diff --git a/programs/src/audio/Makefile b/programs/src/audio/Makefile index 9adff0a..854a4be 100644 --- a/programs/src/audio/Makefile +++ b/programs/src/audio/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/bluetooth/Makefile b/programs/src/bluetooth/Makefile index 8650d30..2a96b53 100644 --- a/programs/src/bluetooth/Makefile +++ b/programs/src/bluetooth/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/calculator/Makefile b/programs/src/calculator/Makefile index e936c4a..a217617 100644 --- a/programs/src/calculator/Makefile +++ b/programs/src/calculator/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/charmap/Makefile b/programs/src/charmap/Makefile index b3e066a..94f4674 100644 --- a/programs/src/charmap/Makefile +++ b/programs/src/charmap/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/crashpad/Makefile b/programs/src/crashpad/Makefile index 553c90c..4039ad8 100644 --- a/programs/src/crashpad/Makefile +++ b/programs/src/crashpad/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,35 +24,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I ../../lib/bearssl/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I ../../lib/bearssl/inc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp font_data.cpp diff --git a/programs/src/desktop/Makefile b/programs/src/desktop/Makefile index bd95ceb..191b298 100644 --- a/programs/src/desktop/Makefile +++ b/programs/src/desktop/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -33,37 +33,25 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I $(BEARSSL)/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(BEARSSL)/inc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- C++ source files ---- diff --git a/programs/src/devexplorer/Makefile b/programs/src/devexplorer/Makefile index 9d28ebe..691dbd8 100644 --- a/programs/src/devexplorer/Makefile +++ b/programs/src/devexplorer/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,36 +30,24 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I ../../lib/bearssl/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I ../../lib/bearssl/inc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/dialogs/Makefile b/programs/src/dialogs/Makefile index 92a73d3..e0769a4 100644 --- a/programs/src/dialogs/Makefile +++ b/programs/src/dialogs/Makefile @@ -4,17 +4,17 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + LD = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + STRIP = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) +else CC := $(TOOLCHAIN_PREFIX)gcc CXX := $(TOOLCHAIN_PREFIX)g++ LD := $(TOOLCHAIN_PREFIX)ld STRIP := $(TOOLCHAIN_PREFIX)strip -else - CC := gcc - CXX := g++ - LD := ld - STRIP := strip endif PROG_INC := ../../include @@ -31,7 +31,6 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ @@ -41,19 +40,13 @@ CXXFLAGS := \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -DGUI_DIALOGS_LIBRARY_BUILD \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I ../../lib/bearssl/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I ../../lib/bearssl/inc LDFLAGS := \ -shared \ @@ -62,15 +55,13 @@ LDFLAGS := \ --hash-style=sysv \ -u dialogs_run_request \ -u dialogs_message_box \ - -m elf_x86_64 \ - -z max-page-size=0x1000 + -m elf_x86_64 LIBC_CFLAGS := \ -std=gnu11 \ -g -O2 -pipe \ -Wall \ -Wno-unused-parameter \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ @@ -78,12 +69,8 @@ LIBC_CFLAGS := \ -fvisibility=hidden \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -isystem $(PROG_INC)/libc \ -isystem $(GCC_INCLUDE) diff --git a/programs/src/disks/Makefile b/programs/src/disks/Makefile index 4a6d001..fef07a3 100644 --- a/programs/src/disks/Makefile +++ b/programs/src/disks/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/doom/Makefile b/programs/src/doom/Makefile index a8b2e3d..cd02322 100644 --- a/programs/src/doom/Makefile +++ b/programs/src/doom/Makefile @@ -6,15 +6,15 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + LD = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) +else CC := $(TOOLCHAIN_PREFIX)gcc CXX := $(TOOLCHAIN_PREFIX)g++ LD := $(TOOLCHAIN_PREFIX)gcc -else - CC := gcc - CXX := g++ - LD := gcc endif # ---- Paths ---- @@ -39,19 +39,13 @@ CFLAGS := \ -Wno-missing-field-initializers \ -Wno-sign-compare \ -Wno-pointer-sign \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -DNORMALUNIX \ -DLINUX \ -DFEATURE_SOUND \ @@ -66,36 +60,24 @@ CXXFLAGS := \ -g -O2 -pipe \ -Wall \ -Wno-unused-parameter \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -isystem $(LIBC_INC) \ -I . \ - -I $(PROG_INC) \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(PROG_INC) # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- DOOM source files (excluding platform-specific ports and sound backends) ---- diff --git a/programs/src/fetch/Makefile b/programs/src/fetch/Makefile index 4e9005a..7fc9a6c 100644 --- a/programs/src/fetch/Makefile +++ b/programs/src/fetch/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -32,38 +32,26 @@ CXXFLAGS := \ -Wall \ -Wextra \ -Wno-unused-parameter \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -mno-80387 \ -mno-mmx \ -mno-sse \ -mno-sse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(LIBC_INC) \ - -I $(BEARSSL)/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(BEARSSL)/inc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Libraries ---- diff --git a/programs/src/fontpreview/Makefile b/programs/src/fontpreview/Makefile index bb2b41e..000ae53 100644 --- a/programs/src/fontpreview/Makefile +++ b/programs/src/fontpreview/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,34 +30,22 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ - -I $(PROG_INC) \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(PROG_INC) # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Libraries ---- diff --git a/programs/src/imageviewer/Makefile b/programs/src/imageviewer/Makefile index b789db6..7288716 100644 --- a/programs/src/imageviewer/Makefile +++ b/programs/src/imageviewer/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -32,35 +32,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(LIBC_INC) \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(LIBC_INC) # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Libraries ---- diff --git a/programs/src/installer/Makefile b/programs/src/installer/Makefile index 1d4bdc5..a679444 100644 --- a/programs/src/installer/Makefile +++ b/programs/src/installer/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,36 +30,24 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/klog/Makefile b/programs/src/klog/Makefile index 5473d7a..76ced1b 100644 --- a/programs/src/klog/Makefile +++ b/programs/src/klog/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,33 +24,21 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp font_data.cpp diff --git a/programs/src/libloader/Makefile b/programs/src/libloader/Makefile index defcd5d..fd88028 100644 --- a/programs/src/libloader/Makefile +++ b/programs/src/libloader/Makefile @@ -2,7 +2,7 @@ ARCH := x86_64 -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- CXX := $(TOOLCHAIN_PREFIX)g++ AR := $(TOOLCHAIN_PREFIX)ar @@ -11,28 +11,20 @@ override CXXFLAGS := \ -g -O2 -pipe \ -Wall \ -Wextra \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -mno-80387 \ -mno-mmx \ -mno-sse \ -mno-sse2 \ - -mno-red-zone \ - -mcmodel=small \ -I ../../include \ -isystem ../../include/libc \ - -isystem ../../include/montauk \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem ../../include/montauk LIBDIR := ../../lib/libloader LEGACY_BINDIR := ../../bin diff --git a/programs/src/login/Makefile b/programs/src/login/Makefile index a9b9f86..ce06ec4 100644 --- a/programs/src/login/Makefile +++ b/programs/src/login/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -32,36 +32,24 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I $(BEARSSL)/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(BEARSSL)/inc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/lua/Makefile b/programs/src/lua/Makefile index 37f2429..5ae753d 100644 --- a/programs/src/lua/Makefile +++ b/programs/src/lua/Makefile @@ -1,13 +1,13 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + AR = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) +else CC := $(TOOLCHAIN_PREFIX)gcc AR := $(TOOLCHAIN_PREFIX)ar -else - CC := gcc - AR := ar endif SRCDIR := src @@ -26,19 +26,13 @@ CFLAGS := \ -Wno-sign-compare \ -Wno-misleading-indentation \ -Wno-implicit-fallthrough \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -D__MONTAUKOS__=1 \ -DLUA_COMPAT_5_3 \ -I$(SRCDIR) \ @@ -47,11 +41,7 @@ CFLAGS := \ LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T ../../link.ld CORE_SRCS := \ diff --git a/programs/src/mandelbrot/Makefile b/programs/src/mandelbrot/Makefile index b1310a7..6152939 100644 --- a/programs/src/mandelbrot/Makefile +++ b/programs/src/mandelbrot/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/music/Makefile b/programs/src/music/Makefile index 127c581..d67f3fd 100644 --- a/programs/src/music/Makefile +++ b/programs/src/music/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,36 +30,24 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -I . \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/network/Makefile b/programs/src/network/Makefile index 2260239..6774b8c 100644 --- a/programs/src/network/Makefile +++ b/programs/src/network/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,34 +24,22 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp diff --git a/programs/src/paint/Makefile b/programs/src/paint/Makefile index d976884..426ba39 100644 --- a/programs/src/paint/Makefile +++ b/programs/src/paint/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/pdfviewer/Makefile b/programs/src/pdfviewer/Makefile index 797eb2d..d96d79e 100644 --- a/programs/src/pdfviewer/Makefile +++ b/programs/src/pdfviewer/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/powermgr/Makefile b/programs/src/powermgr/Makefile index 2bcdf92..814b5af 100644 --- a/programs/src/powermgr/Makefile +++ b/programs/src/powermgr/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,34 +24,22 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp diff --git a/programs/src/printctl/Makefile b/programs/src/printctl/Makefile index acaa75d..28f6302 100644 --- a/programs/src/printctl/Makefile +++ b/programs/src/printctl/Makefile @@ -3,11 +3,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,36 +24,24 @@ CXXFLAGS := \ -Wall \ -Wextra \ -Wno-unused-parameter \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -mno-80387 \ -mno-mmx \ -mno-sse \ -mno-sse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I $(BEARSSL)/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(BEARSSL)/inc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) TARGET := $(BINDIR)/os/printctl.elf diff --git a/programs/src/printd/Makefile b/programs/src/printd/Makefile index 0f66ffe..554e1d9 100644 --- a/programs/src/printd/Makefile +++ b/programs/src/printd/Makefile @@ -3,11 +3,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -25,34 +25,22 @@ CXXFLAGS := \ -Wall \ -Wextra \ -Wno-unused-parameter \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I $(BEARSSL)/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(BEARSSL)/inc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp test_page_jpeg.cpp font_data.cpp stb_truetype_impl.cpp diff --git a/programs/src/printers/Makefile b/programs/src/printers/Makefile index 9e66697..8bd17d0 100644 --- a/programs/src/printers/Makefile +++ b/programs/src/printers/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,35 +24,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I ../../lib/bearssl/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I ../../lib/bearssl/inc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp font_data.cpp diff --git a/programs/src/procmgr/Makefile b/programs/src/procmgr/Makefile index f0db480..820be26 100644 --- a/programs/src/procmgr/Makefile +++ b/programs/src/procmgr/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,34 +24,22 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp diff --git a/programs/src/rpgdemo/Makefile b/programs/src/rpgdemo/Makefile index e033667..cf98789 100644 --- a/programs/src/rpgdemo/Makefile +++ b/programs/src/rpgdemo/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -34,37 +34,25 @@ CXXFLAGS := \ -Wno-unused-parameter \ -Wno-unused-function \ -Wno-missing-field-initializers \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ -fno-tree-loop-distribute-patterns \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -I . \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/screenshot/Makefile b/programs/src/screenshot/Makefile index 4017c0b..e9e47ad 100644 --- a/programs/src/screenshot/Makefile +++ b/programs/src/screenshot/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -34,36 +34,24 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem $(PROJECT_ROOT)/kernel/freestnd-c-hdrs/x86_64/include \ - -isystem $(PROJECT_ROOT)/kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Libraries ---- diff --git a/programs/src/shell/Makefile b/programs/src/shell/Makefile index 496861c..755098f 100644 --- a/programs/src/shell/Makefile +++ b/programs/src/shell/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -28,38 +28,26 @@ CXXFLAGS := \ -Wall \ -Wextra \ -Wno-unused-parameter \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -mno-80387 \ -mno-mmx \ -mno-sse \ -mno-sse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I . \ - -I $(PROG_INC) \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(PROG_INC) # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/spreadsheet/Makefile b/programs/src/spreadsheet/Makefile index b96fcd4..8a9469b 100644 --- a/programs/src/spreadsheet/Makefile +++ b/programs/src/spreadsheet/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/tcc/Makefile b/programs/src/tcc/Makefile index 1839dfc..e68cae0 100644 --- a/programs/src/tcc/Makefile +++ b/programs/src/tcc/Makefile @@ -6,15 +6,15 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CC = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) + AR = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) +else CC := $(TOOLCHAIN_PREFIX)gcc CXX := $(TOOLCHAIN_PREFIX)g++ AR := $(TOOLCHAIN_PREFIX)ar -else - CC := gcc - CXX := g++ - AR := ar endif # ---- Paths ---- @@ -37,19 +37,13 @@ CFLAGS := \ -Wno-implicit-fallthrough \ -Wno-stringop-truncation \ -Wno-format-truncation \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -fno-tree-loop-distribute-patterns \ -D__MONTAUKOS__=1 \ -DONE_SOURCE=0 \ @@ -61,11 +55,7 @@ CFLAGS := \ LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T ../../link.ld # ---- Sources ---- diff --git a/programs/src/terminal/Makefile b/programs/src/terminal/Makefile index ba387cd..9472b40 100644 --- a/programs/src/terminal/Makefile +++ b/programs/src/terminal/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,33 +24,21 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp font_data.cpp diff --git a/programs/src/texteditor/Makefile b/programs/src/texteditor/Makefile index d8aa5bb..bcd5832 100644 --- a/programs/src/texteditor/Makefile +++ b/programs/src/texteditor/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -30,35 +30,23 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Source files ---- diff --git a/programs/src/timezone/Makefile b/programs/src/timezone/Makefile index 0c62c9b..a1ea68d 100644 --- a/programs/src/timezone/Makefile +++ b/programs/src/timezone/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,34 +24,22 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -MMD -MP \ -I $(PROG_INC) \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp stb_truetype_impl.cpp font_data.cpp diff --git a/programs/src/video/Makefile b/programs/src/video/Makefile index bc4e254..f6c963b 100644 --- a/programs/src/video/Makefile +++ b/programs/src/video/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,34 +24,22 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -I . \ - -isystem $(PROG_INC)/libc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -isystem $(PROG_INC)/libc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp avi.cpp stb_image_impl.cpp stb_truetype_impl.cpp diff --git a/programs/src/weather/Makefile b/programs/src/weather/Makefile index 64cb967..2fc4f39 100644 --- a/programs/src/weather/Makefile +++ b/programs/src/weather/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -33,36 +33,24 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(LIBC_INC) \ - -I $(BEARSSL)/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(BEARSSL)/inc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Libraries ---- diff --git a/programs/src/wiki/Makefile b/programs/src/wiki/Makefile index 6e2ecac..8f10a39 100644 --- a/programs/src/wiki/Makefile +++ b/programs/src/wiki/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -32,38 +32,26 @@ CXXFLAGS := \ -Wall \ -Wextra \ -Wno-unused-parameter \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -mno-80387 \ -mno-mmx \ -mno-sse \ -mno-sse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(LIBC_INC) \ - -I $(BEARSSL)/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(BEARSSL)/inc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Libraries ---- diff --git a/programs/src/wikipedia/Makefile b/programs/src/wikipedia/Makefile index 0a21d5d..5e72f1f 100644 --- a/programs/src/wikipedia/Makefile +++ b/programs/src/wikipedia/Makefile @@ -6,11 +6,11 @@ MAKEFLAGS += -rR # ---- Toolchain ---- -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif # ---- Paths ---- @@ -33,36 +33,24 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(LIBC_INC) \ - -I $(BEARSSL)/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I $(BEARSSL)/inc # ---- Linker flags ---- LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) # ---- Libraries ---- diff --git a/programs/src/wordprocessor/Makefile b/programs/src/wordprocessor/Makefile index 52a24ef..ef8b33a 100644 --- a/programs/src/wordprocessor/Makefile +++ b/programs/src/wordprocessor/Makefile @@ -4,11 +4,11 @@ MAKEFLAGS += -rR .SUFFIXES: -TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-elf- -ifneq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) - CXX := $(TOOLCHAIN_PREFIX)g++ +TOOLCHAIN_PREFIX := $(shell cd ../../.. && pwd)/toolchain/local/bin/x86_64-montauk- +ifeq ($(wildcard $(TOOLCHAIN_PREFIX)gcc),) + CXX = $(error x86_64-montauk toolchain not found. Run ./toolchain/build-montauk-toolchain.sh first) else - CXX := g++ + CXX := $(TOOLCHAIN_PREFIX)g++ endif PROG_INC := ../../include @@ -24,34 +24,22 @@ CXXFLAGS := \ -Wextra \ -Wno-unused-parameter \ -Wno-unused-function \ - -nostdinc \ -ffreestanding \ -fno-stack-protector \ -fno-stack-check \ - -fno-PIC \ -fno-rtti \ -fno-exceptions \ -ffunction-sections \ -fdata-sections \ - -m64 \ - -march=x86-64 \ -msse \ -msse2 \ - -mno-red-zone \ - -mcmodel=small \ -I $(PROG_INC) \ -isystem $(PROG_INC)/libc \ - -I ../../lib/bearssl/inc \ - -isystem ../../../kernel/freestnd-c-hdrs/x86_64/include \ - -isystem ../../../kernel/freestnd-cxx-hdrs/x86_64/include + -I ../../lib/bearssl/inc LDFLAGS := \ -nostdlib \ - -static \ - -Wl,--build-id=none \ -Wl,--gc-sections \ - -Wl,-m,elf_x86_64 \ - -z max-page-size=0x1000 \ -T $(LINK_LD) SRCS := main.cpp document.cpp render.cpp input.cpp print_export.cpp stb_truetype_impl.cpp