go - gccgo,AIX:编译的.o文件不包含.go_export节

标签 go gcc aix powerpc gccgo

我正在尝试在AIX上构建gccgo(9.2),现在面临着我无法解决的问题。

机器:AIX 7.1,处理器类型:PowerPC_POWER7,CPU类型:64位,内核类型:64位

错误:“./ sync / atomic.gox存在,但不包含任何Go导出数据”。

因此,我查看了atomic.gox,它是空的。 (所有.gox文件均为空)。
因此,接下来我看如何创建atomic.gox。该文件由objcopy -j .go_export sync/.libs/atomic.o创建。因此,atomic.o的.go_export部分用于创建atomic.gox。通过我发现的objdump -s atomic.o,atomic.o没有任何.go_export节,只有“.text,.data和.debug”。因此,错误的行为是在创建.o文件时发现的。为了创建atomic.o文件,我找到了以下行:

libtool:编译:/OS/COMPSRV/trunk/user1/src/gccgo-obj/./gcc/gccgo
-B / OS / COMPSRV / trunk / user1 / src / gccgo-obj /./ gcc / -B / opt / freeware / gcc9 / powerpc-ibm-aix7.1.5.0 / bin / -B / opt / freeware / gcc9 /powerpc-ibm-aix7.1.5.0/lib/ -isystem /opt/freeware/gcc9/powerpc-ibm-aix7.1.5.0/include -isystem
/opt/freeware/gcc9/powerpc-ibm-aix7.1.5.0/sys-include -O2 -g -I。 -C
-fgo-pkgpath = sync / atomic ../.././../gccgo-src/libgo/go/sync/atomic/doc.go
../.././../gccgo-src/libgo/go/sync/atomic/value.go -fPIC -o
同步/.libs/atomic.o

这些是我的configure参数:

语言=“-enable-languages = go,c,c ++”

options =“CC = / opt / freeware / bin / gcc --without-gnu-ar --without-gnu-as
--with-gnu-ld --with-gmp-include = / usr / include / gmp --disable-bootstrap --with-gmp-lib = / usr / lib --with-mpfr-include = / usr / include / mpfr --with-mpfr-lib = / usr / lib --with-mpfr = / usr / include --with-mpc = / usr / include --disable-nls --disable-libquadmath --disable-libssp- -disable-lto --disable-libgomp“

multilib =“-enable-multilib”

shared =“-enable-shared”

static =“-启用静态”

更多信息:
我正在使用gcc 8.3

编辑:

建议的解决方案:

  • 我添加了--enable-libgo,但是错误仍然存​​在
  • 最佳答案

    看起来可疑的一件事是您似乎并没有通过--enable-libgo进行配置。也许尝试看看是否有帮助?

    关于go - gccgo,AIX:编译的.o文件不包含.go_export节,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60740927/

    相关文章:

    python - 使用 AES-CFB 时 Go 和 Pycrypto 的不同结果

    gcc - 我需要将 CFLAGS 显式传递给 gcc 吗?

    c - 为什么 GCC 在实现整数除法时使用乘以一个奇怪的数字?

    linux - 向每列添加多个值

    gcc 中的编译标志用于调试 gdb 中的静态变量(在 AIX 操作系统中)

    tcp - 在 AIX 中写入端口 514

    go - 同一 Channel 中的两个 goroutine - 它们是如何执行的?

    google-app-engine - 使用 golang 中的接口(interface)避免代码重复

    opengl 3.3 z-fighting 正交 2d View

    c++ - 在继承的构造函数中仅 move 类参数