首页 > 解决方案 > 未知的伪操作:`.pushsection'。作为版本 2.29.1

问题描述

赛格温 x86。GCC 版本 7.3.0。汇编器版本 2.29.1。我正在尝试构建 Seabios (CSM16.bin)。但我有错误:

stacks.s: Assembler messages:
stacks.s:139: Error: unknown pseudo-op: `.pushsection'

由于版本不是很旧。但是为什么汇编程序不理解操作码?对不起我的英语不好...

海合会-v:

Используются внутренние спецификации.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-pc-cygwin/7.3.0/lto-wrapper.exe
Целевая архитектура: i686-pc-cygwin
Параметры конфигурации: /cygdrive/i/szsz/tmpp/gcc/gcc-7.3.0-3.i686/src/gcc-7.3.0/configure --srcdir=/cygdrive/i/szsz/tmpp/gcc/gcc-7.3.0-3.i686/src/gcc-7.3.0 --prefix=/usr --exec-prefix=/usr --localstatedir=/var --sysconfdir=/etc --docdir=/usr/share/doc/gcc --htmldir=/usr/share/doc/gcc/html -C --build=i686-pc-cygwin --host=i686-pc-cygwin --target=i686-pc-cygwin --without-libiconv-prefix --without-libintl-prefix --libexecdir=/usr/lib --enable-shared --enable-shared-libgcc --enable-static --enable-version-specific-runtime-libs --enable-bootstrap --enable-__cxa_atexit --with-dwarf2 --with-arch=i686 --with-tune=generic --disable-sjlj-exceptions --enable-languages=ada,c,c++,fortran,lto,objc,obj-c++ --enable-graphite --enable-threads=posix --enable-libatomic --enable-libcilkrts --enable-libgomp --enable-libitm --enable-libquadmath --enable-libquadmath-support --disable-libssp --enable-libada --disable-symvers --with-gnu-ld --with-gnu-as --with-cloog-include=/usr/include/cloog-isl --without-libiconv-prefix --without-libintl-prefix --with-system-zlib --enable-linker-build-id --with-default-libstdcxx-abi=gcc4-compatible --enable-libstdcxx-filesystem-ts
Модель многопоточности: posix
gcc версия 7.3.0 (GCC)

标签: gccassemblycygwingnu-assembler

解决方案


正如手册所说 .pushsection,是 ELF 部分堆栈操作指令之一。cygwin 目标不是 ELF,而是 COFF/PE。因此,该指令不可用(即使它是有意义的)。


推荐阅读