2然后再继续找,大约在72行左右,找到VDSO_LDFLAGS_vdso32.lds = -m elf_i386 -Wl,-soname=linux-gate.so.1中的 "-m elf_i386" 替换为 "-m32" 然后继续编译,就可以了。
由于我用的是 64 位的环境,所以调用as命令的时候需要指定--32选项,调用ld命令的时候需要指定-m elf_i386选项。指定以上选项后,生成的是 32 位的 ELF 目标文件,否则默认会生成 64 位的 ELF 目标文件,如果目标文件是 64 位,以后和 C 语言生成的目标文件连接时会出问题。使用 32 位环境的朋友们不用特意指定...
export LD=/usr/local/bin/gcc-4.9 我们需要编译binutils 与 cross-compiled gcc,而后我们将他们放在/usr/local/i386elfgcc,现在让我们export几个路径,当然你可以按照需求改变它们。 export PREFIX="/usr/local/i386elfgcc" export TARGET=i386-elf export PATH="$PREFIX/bin:$PATH" binutils 记住,从网上粘贴命令...
从第三步我们可以看出,最终生成elf文件(a.out)是collect2,它其实也是ld命令最终调用的命令。 2.4 导出默认链接脚本的方法 2.4.1 使用ld命令导出 ld --verbose 这样就可以得到输出: test_gcc$ ld --verbose GNU ld (GNU Binutils for Ubuntu) 2.34 Supported emulations: elf_x86_64 elf32_x86_64 elf_i386...
2. 使用 as 时,请指定 --32 选项,使用 gcc 时,请指定 -m32 选项,使用 ld 时,请指定 -m elf_i386 选项。如果是反汇编 16 位代码,在使用 objdump 时,请使用 -m i8086 选项。 3. 在 DOS 中运行的 .com 文件会被加载到 0x100 处执行,所以使用 ld 连接时需指定 -Ttext 0x100 选项;引导扇区的代...
i386-, i686- and x86_64-elf GCC, GDB and Binutils i686-elf i686-elf-gcc i686-elf-gdb i386-elf Updated Nov 14, 2024 Shell mental32 / i686-elf Sponsor Star 9 Code Issues Pull requests i686-elf (GCC, GDB, Binutils) cross-compiler script toolchain gcc osdev cross-compiler...
简单算一下:sub.o的开始部分是ELF的header,通过readelf -h sub.o指令可以看出来header部分是52个字节(即:0x34),如下: 因此可以得到: 代码段(.text)是紧接在 header 之后,长度是 0x0C 个字节,在文件中占据着 0x34 ~ 0x3F 这部分空间(0x3F = 0x34 + 0x0C - 1); ...
"elf64-x86-64") OUTPUT_ARCH(i386:x86-64) ENTRY(_start) SEARCH_DIR("=/usr/local/lib/x86_64-linux-gnu"); SEARCH_DIR("=/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu"); SEARCH_DIR("=/usr/lib/x86_64-linux-gnu64"); SEARCH_DIR("=/usr/local/lib64"); SE...
$ ld-m elf_i386 main.osub.o-e main-o main 1. 段信息 使用readelf工具来看一下main可执行文件中的段信息(指令:readelf -S main): 红色矩形框是代码段(.text),链接器把它放在虚拟地址 0x0804_8094; 黄色矩形框是数据段(.data),链接器把它放在虚拟地址 0x0804_9138; ...
i386-features.h i386-isa.def i386-modes.def i386-options.cc i386-options.h i386-opts.h i386-passes.def i386-protos.h i386-rust.cc i386-rust.h i386.cc i386.h i386.md i386.opt i386.opt.urls i386elf.h ia32intrin.h iamcu.h immintrin.h k6.md keylockerintrin.h kfreebsd-gnu.h kfree...