aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBerin Aniesh <berinaniesh@gmail.com>2023-05-30 07:15:03 +0530
committerSam James <sam@gentoo.org>2023-05-31 06:54:09 +0100
commit8eed426e460d51a59353895d574d7d4b2d4b1388 (patch)
tree45fcc87daab84e3c91bb2a233ee99c97e2167b8f
parentgcc-config: Don't call portageq if the variable is already set (diff)
downloadgcc-config-8eed426e460d51a59353895d574d7d4b2d4b1388.tar.gz
gcc-config-8eed426e460d51a59353895d574d7d4b2d4b1388.tar.bz2
gcc-config-8eed426e460d51a59353895d574d7d4b2d4b1388.zip
README: Convert README from rST to markdown
Signed-off-by: Berin Aniesh <berinaniesh@gmail.com> Closes: https://github.com/gentoo/gcc-config/pull/4 Signed-off-by: Sam James <sam@gentoo.org>
-rw-r--r--README77
-rw-r--r--README.md96
2 files changed, 96 insertions, 77 deletions
diff --git a/README b/README
deleted file mode 100644
index 1321f63..0000000
--- a/README
+++ /dev/null
@@ -1,77 +0,0 @@
-What is gcc-config?
--------------------
-
-gcc-config allows Gentoo users to switch active gcc safely
-and allows querying facts about installed toolchains.
-
-To switch active gcc while system runs:
- $ gcc-config x86_64-pc-linux-gnu-8.1.0
- $ gcc-config x86_64-pc-linux-gnu-7.2.0
-
- Ideally changes should be visible instantly and atomically
- without shell restart.
-
-To query where real gcc binaries are hiding:
- $ gcc-config -B $(gcc-config -c)
-
-To parse a profile into TARGET and toolchain version:
- $ gcc-config -S sparc64-unknown-linux-gnu-9.2.0
-
-Files, variables, things.
--------------------------
-
-- Wrappers (symlinks to compiler binary like /usr/${CTARGET}/gcc-bin/${GCC_VERSION}/gcc)
- /usr/bin/gcc (native)
- /usr/bin/g++ (native)
- /usr/bin/${CTARGET}-gcc (native and cross)
- ...
- (all files from /usr/${CTARGET}/gcc-bin/$GCC_VERSION/*)
-
- See `gcc-config` script for wrapping details.
-
- /usr/bin/c89 (native)
- /usr/bin/c99 (native)
-
-- private gcc configs (provided by `toolchain.eclass`, gcc ebuilds)
-
- /etc/env.d/gcc/x86_64-pc-linux-gnu-8.1.0
-
- Contains variables that describe toolchain layout:
-
- LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0"
- MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/8.1.0/man"
- INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/8.1.0/info"
- STDCXX_INCDIR="g++-v8"
- CTARGET="x86_64-pc-linux-gnu"
- GCC_SPECS=""
- MULTIOSDIRS="../lib64"
- GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/8.1.0"
-
- Used by gcc-config to generate wrappers and 05gcc- env.d files.
-
-- gcc env.d compiler entries (provided by gcc-config)
-
- /etc/env.d/04gcc-${CTARGET} (native)
-
- Populates paths for native-compilers
-
- GCC_SPECS=""
- MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/8.2.0/man"
- INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/8.2.0/info"
-
- Used by env-update to populate PATH and more (TODO: remove PATH population).
-
-TODOs
------
-
-- Write proper `gcc-config` manpage off this readme to be more discoverable.
-
-- Figure out symlink ownership story. Today symlinks don't belong to any package.
-
- See https://bugs.gentoo.org/626606
-
-Releasing
----------
-
- $ release=2.3.1; git tag -a -s -m "release ${release}" v${release}; make dist PV=${release}
- $ git push --tags origin
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..e4effa0
--- /dev/null
+++ b/README.md
@@ -0,0 +1,96 @@
+# What is gcc-config?
+
+`gcc-config` allows Gentoo users to switch active gcc safely
+and allows querying facts about installed toolchains.
+
+## Usage
+
+To switch active `gcc` while system runs:
+
+```
+ $ gcc-config x86_64-pc-linux-gnu-8.1.0
+ $ gcc-config x86_64-pc-linux-gnu-7.2.0
+```
+
+Ideally changes should be visible instantly and atomically
+without shell restart.
+
+To query where real `gcc` binaries are hiding:
+
+```
+ $ gcc-config -B $(gcc-config -c)
+```
+
+To parse a profile into TARGET and toolchain version:
+
+```
+ $ gcc-config -S sparc64-unknown-linux-gnu-9.2.0
+```
+
+## Files, variables, things.
+
+- Wrappers (symlinks to compiler binary like `/usr/${CTARGET}/gcc-bin/${GCC_VERSION}/gcc`)
+
+ `/usr/bin/gcc` (native)
+
+ `/usr/bin/g++` (native)
+
+ `/usr/bin/${CTARGET}-gcc` (native and cross)
+
+ ...
+
+ (all files from `/usr/${CTARGET}/gcc-bin/$GCC_VERSION/*`)
+
+ See `gcc-config` script for wrapping details.
+
+ `/usr/bin/c89` (native)
+
+ `/usr/bin/c99` (native)
+
+- private `gcc` configs (provided by `toolchain.eclass`, gcc ebuilds)
+
+ `/etc/env.d/gcc/x86_64-pc-linux-gnu-8.1.0`
+
+Contains variables that describe toolchain layout:
+
+```
+ LDPATH="/usr/lib/gcc/x86_64-pc-linux-gnu/8.1.0"
+ MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/8.1.0/man"
+ INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/8.1.0/info"
+ STDCXX_INCDIR="g++-v8"
+ CTARGET="x86_64-pc-linux-gnu"
+ GCC_SPECS=""
+ MULTIOSDIRS="../lib64"
+ GCC_PATH="/usr/x86_64-pc-linux-gnu/gcc-bin/8.1.0"
+```
+
+ Used by `gcc-config` to generate wrappers and `05gcc-` `env.d` files.
+
+- `gcc` `env.d` compiler entries (provided by `gcc-config`)
+
+ `/etc/env.d/04gcc-${CTARGET}` (native)
+
+ Populates paths for native-compilers
+
+```
+ GCC_SPECS=""
+ MANPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/8.2.0/man"
+ INFOPATH="/usr/share/gcc-data/x86_64-pc-linux-gnu/8.2.0/info"
+```
+
+Used by `env-update` to populate `$PATH` and more (TODO: remove `$PATH` population).
+
+## TODOs
+
+- Write proper `gcc-config` manpage off this readme to be more discoverable.
+
+- Figure out symlink ownership story. Today symlinks don't belong to any package.
+
+ See [bug 626606](https://bugs.gentoo.org/626606)
+
+## Releasing
+
+```
+ $ release=2.3.1; git tag -a -s -m "release ${release}" v${release}; make dist PV=${release}
+ $ git push --tags origin
+```