X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/59ecf21e36b2332f6adf2a568ef555283d8c119a..1375eb51603466b723ab7dd1ca4194ee5d662f75:/docs/outdated/compile_gcc.md
diff --git a/docs/outdated/compile_gcc.md b/docs/outdated/compile_gcc.md
new file mode 100644
index 0000000..30586f8
--- /dev/null
+++ b/docs/outdated/compile_gcc.md
@@ -0,0 +1,74 @@
+# ç¼è¯gccä½ä¸ºäº¤åç¼è¯å¨
+
+注æï¼gccéè¦ä»æºç æå»ºï¼å¹¶é
置为交åç¼è¯å¨ï¼å³ç®æ å¹³å°ä¸º`i686-elf`ãä½ å¯ä»¥ä½¿ç¨æ¬é¡¹ç®æä¾ç[èªå¨åèæ¬](slides/c0-workspace/gcc-build.sh)ï¼è¿å°ä¼æ¶µçgccåbinutilsæºç çä¸è½½ï¼é
ç½®åç¼è¯ï¼æ²¡ä»ä¹æ¶é´å»æç£¨èæ¬ï¼ç®ååªç¥éå¨ç¬è
çUbuntuç³»ç»ä¸å¯ä»¥è¿è¡ï¼ã
+
+**æ¨è**æå¨ç¼è¯ã以ä¸ç¼è¯æ¥éª¤æ¬è¿èªï¼
+
+**é¦å
å®è£
æå»ºä¾èµé¡¹ï¼**
+
+```bash
+sudo apt update &&\
+ apt install -y \
+ build-essential \
+ bison\
+ flex\
+ libgmp3-dev\
+ libmpc-dev\
+ libmpfr-dev\
+ texinfo
+```
+
+**å¼å§ç¼è¯ï¼**
+
+1. è·å[gcc](https://ftp.gnu.org/gnu/gcc/)å[binutils](https://ftp.gnu.org/gnu/binutils)æºç
+2. è§£åï¼å¹¶å¨å级ç®å½ä¸ºgccåbinutilæ°å»ºä¸é¨çbuildæä»¶å¤¹
+
+ç°å¨åè®¾ä½ çç®å½ç»æå¦ä¸ï¼
+
+```
++ folder
+ + gcc-src
+ + binutils-src
+ + gcc-build
+ + binutils-build
+```
+
+3. ç¡®å®gccåbinutilå®è£
çä½ç½®ï¼å¹¶è®¾ç½®ç¯å¢åéï¼`export PREFIX=<å®è£
è·¯å¾>` ç¶å设置PATHï¼ `export PATH="$PREFIX/bin:$PATH"`
+4. è®¾ç½®ç®æ å¹³å°ï¼`export TARGET=i686-elf`
+5. è¿å
¥`binutils-build`è¿è¡é
ç½®
+
+```bash
+../binutils-src/configure --target="$TARGET" --prefix="$PREFIX" \
+ --with-sysroot --disable-nls --disable-werror
+```
+
+ç¶å `make && make install`
+
+6. ç¡®ä¿ä¸è¿°ç`binutils`å·²ç»æ£å¸¸å®è£
ï¼æ§è¡ï¼`which i686-elf-as`ï¼åºè¯¥ä¼ç»åºä¸ä¸ªä½äºä½ å®è£
ç®å½ä¸çè·¯å¾ã
+6. è¿å
¥`gcc-build`è¿è¡é
ç½®
+
+```bash
+../gcc-src/configure --target="$TARGET" --prefix="$PREFIX" \
+ --disable-nls --enable-languages=c,c++ --without-headers
+```
+
+ç¶åç¼è¯å®è£
ï¼å峿§è½ï¼å¤§çº¦10~20åéï¼ï¼
+
+```bash
+make all-gcc &&\
+ make all-target-libgcc &&\
+ make install-gcc &&\
+ make install-target-libgcc
+```
+
+8. éªè¯å®è£
ï¼æ§è¡`i686-elf-gcc -dumpmachine`ï¼è¾åºåºè¯¥ä¸ºï¼`i686-elf`
+
+**å°æ°ç¼è¯å¥½çGCCæ°¸ä¹
æ·»å å°`PATH`ç¯å¢åé**
+
+è½ç¶è¿æ¯ä¸ä¸ªå¸¸è¯æ§çæä½ï¼ä½èèå°è®¸å¤äººé½ä¼å¿½ç¥è¿ä¸ä¸ªé¢å¤çæ¥éª¤ï¼å¨è¿éç¹æ¤ååºæç¤ºã
+
+è¦æ³å®ç°è¿ä¸ç¹ï¼åªéè¦å¨shellçé
ç½®æä»¶çæ«å°¾æ·»å ï¼`export PATH="<ä¸è¿°çå®è£
è·¯å¾>/bin:$PATH"`ã
+
+è¿ä¸ªé
ç½®æä»¶æ¯åå³äºä½ 使ç¨çshellï¼å¦zshå°±æ¯`${HOME}/.zshrc`ï¼bash忝`${HOME}/.bashrc`ï¼æè
ä½ å«éº»ç¦çï¼æå¾åºåï¼ä½ ä¹å¯ä»¥ç´æ¥ä¿®æ¹å
¨å±ç`/etc/profile`æä»¶ï¼ä¸å³æ°¸é¸ï¼ä½ä¸æ¨èè¿æ ·åï¼ã
+
+è³äºå
¶ä»çæ
åµï¼ç±äºè¿ä¸ªæ¥éª¤å
¶å®å¨ç½ä¸æ¯éå¤å¯æ¥çï¼æä»¥å°±ä¸å¨è¿éèµè¿°äºã