linuxfromscratch:13.0:start

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
linuxfromscratch:13.0:start [2026/03/25 06:40] baecylinuxfromscratch:13.0:start [2026/03/31 15:31] (현재) – [Optimize Failed Package] baecy
줄 1: 줄 1:
 ==== LFS 13.0 ==== ==== LFS 13.0 ====
-=== Optimize Failed Package === +=== Scripts === 
-  * Glibc: LTO-x +/etc/profile.d/build-default-flags.sh 
-  * TCL: LTO-x +<codeprism lang=bash> 
-  * libtool: LTO-x +# Graphite (LTO -fgraphite-identity -floop-nest-optimize -floop-interchange) 
-  * OpenSSL: LTO-x+COMMON_FLAGS="-march=native -O3 -pipe -flto=auto -ffat-lto-objects -fgraphite-identity -floop-nest-optimize -floop-interchange" 
 +export LDFLAGS="-flto=auto -Wl,-O1 -Wl,--as-needed" 
 +source /etc/flags-store/export.list 
 +alias clear-flags='unset CFLAGS CXXFLAGS FCFLAGS FFLAGS RUSTFLAGS LDFLAGS' 
 +</codeprism> 
 +/etc/flags-store/toggle-flags.sh 
 +<codeprism lang=bash> 
 +#!/usr/bin/env bash
  
 +FLAG_DIR="/etc/flags-store"
  
-=== Chapter 8.30. GCC-15.2.0 ===+GREEN='\033[0;32m' 
 +YELLOW='\033[1;33m' 
 +CYAN='\033[0;36m' 
 +NC='\033[0m' 
 + 
 +if [ ! -d "$FLAG_DIR" ]; then 
 +    echo -e "${YELLOW}경고: 플래그 디렉터리($FLAG_DIR)가 존재하지 않습니다.${NC}" 
 +        echo -e "정보: 플래그 디렉터리($FLAG_DIR)를 생성합니다." 
 +        mkdir -pv $FLAG_DIR 
 +        echo -e "${GREEN}정보: 기본 플래그 파일을 생성합니다.${NC}" 
 +        echo -e '#Basic C, CXX  and LD Flags. (native,O3,pipe)\nCOMMON_FLAGS="-march=native -O3 -pipe"\nexport CFLAGS="${COMMON_FLAGS}"\nexport CXXFLAGS="${COMMON_FLAGS}"\nexport FCFLAGS="${COMMON_FLAGS}"\nexport FFLAGS="${COMMON_FLAGS}"\nexport RUSTFLAGS="-C target-cpu=native -C opt-level=3"\n\nexport LDFLAGS="-Wl,-O1 -Wl,--as-needed"' | tee ${FLAG_DIR}/safe.flags 
 +        echo -e "${NC}" 
 +fi 
 + 
 +mapfile -t FLAG_FILES < <(ls "$FLAG_DIR"/*.flags 2>/dev/null) 
 + 
 +echo -e "${CYAN}==============================================${NC}" 
 +echo -e " 현재 적용된 CFLAGS: ${GREEN}${CFLAGS:-"None"}${NC}" 
 +echo -e "----------------------------------------------" 
 +echo -e " 사용 가능한 플래그 목록:" 
 + 
 +for i in "${!FLAG_FILES[@]}"; do 
 +    filename=$(basename "${FLAG_FILES[$i]}"
 +    description=$(head -n 1 "${FLAG_FILES[$i]}" | sed 's/^#//g' | xargs) 
 +    echo -e "  $((i+1))) ${YELLOW}${filename%-6}${NC} \t- ${CYAN}${description}${NC}" 
 +done 
 + 
 +echo -e "  c) ${GREEN}Clear-Flags${NC} (Unset all)" 
 +echo -e "  q) Quit" 
 +echo -e "----------------------------------------------" 
 + 
 +read -p " 플래그 번호를 선택하십시오: " choice 
 + 
 +if [[ "$choice" == "q" ]]; then 
 +    echo "취소되었습니다." 
 +elif [[ "$choice" == "c" ]]; then 
 +    unset CFLAGS CXXFLAGS FCFLAGS FFLAGS RUSTFLAGS LDFLAGS MAKEFLAGS COMMON_FLAGS 
 +    echo -e "${GREEN}>>> 모든 플래그가 초기화되었습니다.${NC}" 
 +elif [[ "$choice" =~ ^[0-9]+$ ]] && [ "$choice" -ge 1 ] && [ "$choice" -le "${#FLAG_FILES[@]}" ]; then 
 +    selected_file="${FLAG_FILES[$((choice-1))]}" 
 +    source "$selected_file" 
 +    echo -e "${GREEN}>>> [$(basename "$selected_file")] 적용 완료!${NC}" 
 +else 
 +    echo -e "${RED}잘못된 선택입니다.${NC}" 
 +fi 
 + 
 +unset FLAG_DIR FLAG_FILES 
 + 
 +export MAKEFLAGS="-j$(nproc)" 
 +</codeprism> 
 +/etc/flags-store/export.list 
 +<codeprism lang=bash> 
 +export CFLAGS="${COMMON_FLAGS}" 
 +export CXXFLAGS="${COMMON_FLAGS}" 
 +export FCFLAGS="${COMMON_FLAGS}" 
 +export FFLAGS="${COMMON_FLAGS}" 
 +export RUSTFLAGS="-C target-cpu=native -C opt-level=3" 
 +</codeprism> 
 +/etc/flags-store/01-safe.flag 
 +<codeprism lang=bash> 
 +#Basic (-native -O3 - pipe) 
 +COMMON_FLAGS="-march=native -O3 -pipe" 
 +export LDFLAGS="-Wl,-O1 -Wl,--as-needed" 
 +source /etc/flags-store/export.list 
 +</codeprism> 
 +/etc/flag-store/02-lto.flags 
 +<codeprism lang=bash> 
 +#LTO (Basic + -flto=auto -ffat-lto-objects) 
 +COMMON_FLAGS="-march=native -O3 -pipe -flto=auto -ffat-lto-objects" 
 +export LDFLAGS="-flto=auto -Wl,-O1 -Wl,--as-needed" 
 +source /etc/flags-store/export.list 
 +</codeprism> 
 +/etc/flags-store/03-graphite.flags 
 +<codeprism lang=bash> 
 +ln -sv /etc/profile.d/build-default-flags.sh /flags-store/03-graphite.flags 
 +</codeprism> 
 +/etc/flags-store/04-kernel.flags 
 +<codeprism lang=bash> 
 +#Kernel (-native -O2 - pipe) 
 +COMMON_FLAGS="-march=native -O2 -pipe" 
 +source /etc/flags-store/export.list 
 +</codeprism> 
 +/etc/flags-store/99-debug.flags 
 +<codeprism lang=bash> 
 +# DEBUG (Graphite -fopt-info) 
 +COMMON_FLAGS="-march=native -O3 -pipe -flto=auto -ffat-lto-objects -fgraphite-identity -floop-nest-optimize -floop-interchange -fopt-info" 
 +export LDFLAGS="-flto=auto -Wl,-O1 -Wl,--as-needed" 
 +source /etc/flags-store/export.list 
 +</codeprism> 
 + 
 +==== Optimize Failed Package ==== 
 +  * Glibc: LTO-x (safe: -march=native -O3 -pipe) 
 +  * TCL: LTO-x (safe: -march=native -O3 -pipe) 
 +  * libtool: LTO-x (safe: -march=native -O3 -pipe) 
 +  * OpenSSL: LTO-x (safe: -march=native -O3 -pipe) 
 +  * Linux-6.18.10: LTO-x, O3-x (safe: -march=native -O2 -pipe) 
 +  * frei0r-2.5.1: LTO-x -march=native-x (safe: -O3 -pipe) 
 +  * Node.js-22.22.0: LTO-x (safe: -march=native -O3 -pipe) (--shared-sqlite: x) 
 +  * SpiderMonkey from firefox-140.8.0: LTO-x (safe: -march=native -O2 -pipe) 
 +  * libaio-0.3.113: LTO=x (safe: -march=native -O3 -pipe) 
 +  * FFmpeg-8.0.1: LTO=x (safe: -march=native -O3 -pipe) 
 +  * ristretto-0.13.4: Graphite-X (safe: -march=native -O3 -pipe -flto=auto -ffat-lto-objects) 
 + 
 +==== 책과 다른 방식의 컴파일이 필요한 패키지 ==== 
 +   
 +==== Chapter 8.30. GCC-15.2.0 ====
 <codeprism lang=bash cmdout=2-12> <codeprism lang=bash cmdout=2-12>
  gcc -v  gcc -v
줄 22: 줄 135:
 gcc version 15.2.0 (GCC)</codeprism> gcc version 15.2.0 (GCC)</codeprism>
 ==== BLFS 13.0 ==== ==== BLFS 13.0 ====
 +  * [[BLFS Build Order]]
 === Chapter 11. General Utilities === === Chapter 11. General Utilities ===
 pinentry-1.3.2 pinentry-1.3.2
  • linuxfromscratch/13.0/start.1774420806.txt.gz
  • 마지막으로 수정됨: 2026/03/25 06:40
  • 저자 baecy