GCC(3)
-
risc-v 용 gnu toolchain 빌드
우분투 20.04의 risc-v 용 toolchain을 사용하니 stdint.h 를 찾지 못하는 에러가 발생했다. riscv64-unknown-elf-gcc -std=c99 -c -Wall -g -march=rv32imac -mabi=ilp32 -mcmodel=medlow -Iinclude main.c -o main.o In file included from main.c:1: /usr/lib/gcc/riscv64-unknown-elf/9.3.0/include/stdint.h:9:16: fatal error: stdint.h: No such file or directory 9 | # include_next | ^~~~~~~~~~ compilation terminated. make: *** [Makefile..
2021.02.03 -
gcc 내장 함수
include/linux/compiler.h #define likely(x) __builtin_expect((x), 1)#define unlikely(x) __builtin_expect((x), 0) likely() 는 true가 될 확률이 높은 조건문에서 성능을 높이고자 사용한다.unlikely()는 false가 될 확률이 높은 조건문에서 성능을 높이고자 사용한다. __builtin_except() 컴파일러에게 branch prediction 정보를 주고자하는 함수이다.자주 사용되지 않는 문장을 함수의 뒷 부분에 배치하여 메모리 캐시나 branch prediction cache에 영향을 주어 성능을 최적하 시키려고 할 때 사용한다. likely/unlikely와는 다르게 userspace에서도 사용할 ..
2018.03.22 -
gcc 툴체인 옵션 간단 정리
- 정말 오래전에 정리해둔 파일을 발견, 웹에 옮겨 둔다. gcc -c : 컴파일만 -nostdinc / - nostdinc++ : 표준 헤더파일을 디렉토리를 검색하지 않는다. -o : 출력파일 이름 -static : 정정 링크를 해서 실행파일을 만든다. -shared : 동적으로 링크 -soname : 동적 라이브러리를 만든다. -O : 최적화 옵션 -S : 어셈블링을 하지 않는다 ( 어셈블 소스 코드 출력 ) -E : 프리프로세싱만 수행 -D : 매크로 디파인 -g : 디버깅 정보 포함 -ggdb : gdb전용 옵션 포함 -pg : profiling을 위한 정보 포함 -w : 모든 경고 메세지 억제 -Wall : gcc가 제공할 수 있고 유용한 모든 경고 메세지를 나타낸다 -werror : 모든 경고..
2014.04.16