|
|
|
|
| 如果想往语言中加一些关键字(如指定变量存放的memory)并向下传递指导后面的编译应如何修改GCC? |
 如果想往语言中加一些关键字(如指定变量存放的memory)并向下传递指导后面的编译应如何修改GCC? - nibbling [ 2005-06-21 16:40 | 0 byte(s)]
 Re: 如果想往语言中加一些关键字(如指定变量存放的memory)并向下传递指导后面的编译应如何修改 - teawater [ 2005-07-14 13:47 | 146 byte(s)]
 Re: 如果想往语言中加一些关键字(如指定变量存放的memory)并向下传递指导后面的编译应如何修改 - nibbling [ 2005-07-14 21:44 | 304 byte(s)]
 Re: 如果想往语言中加一些关键字(如指定变量存放的memory)并向下传递指导后面的编译应如何修改 - albcamus [ 2005-08-04 15:16 | 215 byte(s)]
 Re: 如果想往语言中加一些关键字(如指定变量存放的memory)并向下传递指导后面的编译应如何修改GCC? - pdqqdqq [ 2005-07-14 13:35 | 355 byte(s)]
|
|
|
|
[Original]
[Print]
[Top]
|
如果你是只想要实现在C程序中指定存储器绝对地址的目的,你可以不必改造gcc,而是直接使用gcc的C语言提供的汇编宏扩展(asm)语句来做到这一点.asm宏可以将汇编代码和二进制代码混合在C代码中.对于书写操作系统非常有用.具体用法可查看gcc的手册(文件为*.info).
如果是要扩充C语言使其识别你新加入的关键字,则需要改造gcc,主要是gcc的前端,但这样做似乎没有什么意义.
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
这个还不需要修改gcc
代码中用 __attribute__ ((__section__ ("要放的section名字"))) 并在连接脚本中作相应设置就可以实现的提出的东西
|
|
|
----
读了这么多年的书 还是觉得幼儿园好混
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
|
我们使用的编译器的前端是gcc前端,现在想增加一个新的关键字(比如“internal_buf"),让程序员可以指定数据所要存放的位置, 同时还要保证两个指针之间的赋值必须类型一致,也就是说声明为internal_buf的指针不能分配给别的类型的指针,即需要提供相应的类型检查。此外也想通过加入关键字了解一下gcc前端的扩充改造问题。
|
|
|
[Original]
[Print]
[Top]
|
|
[Original]
[Print]
[Top]
|
赋值语句的两边的类型,本来GCC就是检查的吧?语法分析树每个token都有其属性的。
如果指定section,就用attribute,如果你的意思是自定义自己的section的话,恐怕不光是GCC,动态链接器也要改,elf规范都不一定能兼容了。
|
|
|
[Original]
[Print]
[Top]
|
|
|