MESCC(1)

πŸ“¦
version 0.27 Β· 3 versions
, in ubuntu questing

πŸ’– MESCC πŸ’–

okay bestie, so you know how the GNU system had to bootstrap itself from basically nothing?? this is the compiler that did it β€” a C99 compiler written in Scheme, and she's serving main character energy in the manual pages under section 1 (User Commands). pull up a chair, we're getting into it 🫢


✨ NAME ✨

mescc β€” a C99 compiler in Scheme, and her whole job is bootstrapping the GNU system. iconic behaviour, honestly πŸ’…


🌸 SYNOPSIS 🌸

mescc [OPTION]... FILE...

like. give her some options, give her some files, she'll handle it πŸ’–


πŸ¦‹ DESCRIPTION πŸ¦‹

mescc is a C99 compiler written in Scheme, and its purpose β€” its entire why β€” is bootstrapping the GNU system. that's it. that's the vibe. no cap. πŸ”₯


πŸ‘‘ OPTIONS πŸ‘‘

okay so here's the whole menu, no skips, no "oh you probably won't need that one" β€” we're listing every single one because you deserve the full picture πŸŽ€

  • --align=SYMBOL β€” align SYMBOL. your choices are {functions,globals,none}, and the default is [functions].
  • --arch=ARCH β€” compile for ARCH, default [x86_64].
  • --kernel=ARCH β€” compile for KERNEL, default [linux].
  • -dumpmachine β€” display the compiler's target machine. she's telling you who she is today ✨
  • --base-address=ADDRESS β€” use BaseAddress ADDRESS, default [0x1000000].
  • -D DEFINE[=VALUE] β€” define DEFINE, and if you don't hand her a value, [VALUE=1] is what you get.
  • -E β€” preprocess only. do not compile, do not assemble, do not link. just preprocess and chill πŸ™ˆ
  • -g β€” add debug info (call stack in GDB). lowkey essential when things go sideways.
  • -h, --help β€” display this help and exit. the classic escape hatch πŸ’œ
  • -I DIR β€” append DIR to the include path.
  • -L DIR β€” append DIR to the library path.
  • -l LIBNAME β€” link with LIBNAME.
  • -m BITS β€” compile for BITS bits, default [32].
  • -nodefaultlibs β€” do not use libc.o nor libmescc.a when linking.
  • -nostartfiles β€” do not use crt1.o when linking.
  • -nostdlib β€” do not use crt1.o or libc.o or libmescc.a when linking. full bare-metal moment, we love a minimalist queen ⭐
  • -o FILE β€” write output to FILE.
  • -O LEVEL β€” use optimizing LEVEL.
  • -S β€” preprocess and compile only; do not assemble or link.
  • --std=STANDARD β€” assume that the input sources are for STANDARD.
  • -V, --version β€” display version and exit.
  • -w, --write=TYPE β€” dump Nyacc AST using TYPE, and TYPE is one of {pretty-print,write}.
  • -x LANGUAGE β€” specify LANGUAGE of the following input files.

πŸ’€ Ignored for GCC compatibility πŸ’€

these ones are just here so that things expecting GCC don't get their feelings hurt. they exist, they're accepted, they do nothing:

  • -fno-builtin
  • -fno-stack-protector
  • -no-pie
  • -nostdinc
  • -static

🌈 Environment variables 🌈

because sometimes the vibe is set from outside the command line, yk?

  • MES=BINARY β€” run on mes-executable BINARY, and your options are {mes,guile}.
  • MES_DEBUG=LEVEL β€” show debug output with verbosity LEVEL, which ranges {0..5}. crank it up when you're lost, no shame 🫢
  • NYACC_TRACE=1 β€” show Nyacc progress. set it to 1 and watch her narrate her own life ✨

πŸŽ€ REPORTING BUGS πŸŽ€

found something cursed? tell the humans, they wanna know:


πŸ“š SEE ALSO πŸ“š

the full documentation for mescc is maintained as a Texinfo manual. if the info and mescc programs are properly installed at your site, this command

info mescc

should give you access to the complete manual. go read it, bestie, she has layers πŸ’…


and that's the whole page, fr fr 🌸 β€” this was GNU Mes 0.27, dated January 1970 (yes really, that date is doing its own thing and we respect it πŸ’–). stay bootstrapping, stay slaying. periodt. πŸ‘‘πŸ¦‹

πŸ“¦ where this page comes from