小编Vis*_*gar的帖子

Linux中make命令的错误日志

我正在编译内核模块,它有很多编译错误.运行"make"后,抛出的错误太多,无法放入屏幕.向上滚动没有达到第一个错误.我尝试通过make&2> log来捕获错误,这些错误不起作用(日志文件为空并且错误消息仍然被转储到屏幕上).

有人可以告诉我如何将编译期间生成的所有消息记录到日志文件中吗?

makefile compilation

10
推荐指数
2
解决办法
3万
查看次数

将符号从C文件导入链接描述文件

我在我的C文件中创建了一个名为.co_stack的部分,并有一个名为pulStack的数组来定义该区域.

#define STACK_SIZE       0x00003000      /*!< Stack size (in Words)           */
__attribute__ ((section(".co_stack")))
unsigned long pulStack[STACK_SIZE];
Run Code Online (Sandbox Code Playgroud)

我定义堆栈部分的gcc链接器脚本如下所示

.co_stack : {
    _fstackptr = ORIGIN(ram) + LENGTH(ram) - 4;
    _fstacksize = 0x00003000 * 4;       
    . = (_fstackptr - _fstacksize);
    *(.co_stack .co_stack.*)
}
Run Code Online (Sandbox Code Playgroud)

如您所见,我最终在2个位置定义堆栈大小.一个是我的.c文件中的STACK_SIZE和我的.ld文件中的_fstacksize.

我怎样才能在一个地方定义它?

例如,我想创建一个变量pulStackSize,如下所示.

const unsigned long pulStackSize = sizeof(pulStack);
Run Code Online (Sandbox Code Playgroud)

我想在.ld文件中定义_fstacksize为

_fstacksize = STACK_SIZE * 4;
Run Code Online (Sandbox Code Playgroud)

如果我这样做,我得到一个错误,说堆栈溢出48K字节.

如何将.c中的符号导入我的.ld文件?

c linker gcc ld

6
推荐指数
1
解决办法
8887
查看次数

从内核模块的结构中删除填充

我正在使用标准命令编译一个内核模块,其中包含大小为 34 的结构。

make -C /lib/modules/$(KVERSION)/build M=$(PWD) modules
Run Code Online (Sandbox Code Playgroud)

将以sizeof(some_structure)36 而不是 34 的形式出现,即编译器正在填充结构。

如何删除此填充?

运行make V=1显示 gcc 编译器选项传递为

make -I../inc -C /lib/modules/2.6.29.4-167.fc11.i686.PAE/build M=/home/vishal/20100426_eth_vishal/organised_eth/src modules

make[1]: Entering directory `/usr/src/kernels/2.6.29.4-167.fc11.i686.PAE'
test -e include/linux/autoconf.h -a -e include/config/auto.conf || (  \
 echo;        \
 echo "  ERROR: Kernel configuration is invalid.";  \
 echo "         include/linux/autoconf.h or include/config/auto.conf are missing."; \
 echo "         Run 'make oldconfig && make prepare' on kernel src to fix it."; \
 echo;        \
 /bin/false)

mkdir -p /home/vishal/20100426_eth_vishal/organised_eth/src/.tmp_versions ; …
Run Code Online (Sandbox Code Playgroud)

gcc makefile packing kernel-module linux-kernel

1
推荐指数
1
解决办法
2460
查看次数

标签 统计

gcc ×2

makefile ×2

c ×1

compilation ×1

kernel-module ×1

ld ×1

linker ×1

linux-kernel ×1

packing ×1