编译链接
操作系统架构
仅记录自己的一些思考或剽窃别人的一些优秀思考|Random thoughts of an embedded-kernel hacker.
展开
-
C引用链接脚本中的symbol
位置arch/arm/boot/compressed/head.S描述代码分析:/* SPDX-License-Identifier: GPL-2.0-only *//* * linux/arch/arm/boot/compressed/head.S * * Copyright (C) 1996-2002 Russell King * Copyright (C) 2004 Hyok S. Choi (MPU support) */#include <l...原创 2021-09-19 12:48:48 · 252 阅读 · 0 评论 -
gcc attribute 特性记录
记录常用的gcc attribute 属性,随时更新#include <stdio.h>#define __compiletime_object_size(obj) __builtin_object_size(obj, 0)#define __compiletime_warning(message) __attribute__((__warning__(message)))#define __compiletime_error(message) __attribu原创 2020-12-12 11:08:49 · 280 阅读 · 0 评论 -
gcc 通过宏参数传递代码编译时间小记
MakefileBUILD_STRING = $(shell date +"%x %T")__BUILD_STRING__="\"$(BUILD_STRING)\""all: gcc -D__BUILD_STRING__=$(__BUILD_STRING__) Example.cExample.c#include <stdio.h>int main(){ printf("Build time: %s\n", __BUILD_STRING__); retur原创 2020-11-24 09:32:29 · 974 阅读 · 0 评论 -
ld --whole-archive 和 --no-whole-archive学习记录
gnu 连接器ld的操作 --whole-archive 和 --no-whole-archive --whole-archive For each archive mentioned on the command line af- ter the --whole-archive option, include every ob- ...原创 2018-10-14 22:26:13 · 3448 阅读 · 0 评论 -
C语言引用链接脚本中定义的符号
1. 使用ld --verbose 查看当前编译器默认的链接脚本:default.ld/* GNU ld (GNU Binutils for Ubuntu) 2.26.1 Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 elf_iamcu i386linux elf_l1om elf_k...原创 2019-11-13 09:55:05 · 1408 阅读 · 0 评论