неопределенный тип C 'int' с gcc 9.1.0 на солярике - PullRequest
1 голос
/ 10 мая 2019

Я собрал gcc 9.1.0 на Solaris 11 (SPARC) из источников (GNU). Сборка прошла успешно, и бесплатный код Go на CGO можно скомпилировать и работать.

С кодом CGO сборка gccgo не компилируется. код go, ссылающийся на любой стандартный тип C, например C.int, возвращает ошибку:

sh> go build ./...
./main.go:18:2: call of non-function C.f
./main.go:18:6: invalid conversion to C.int: undefined C type 'int'

Вот простой пример кода, который не собирается.

package main

/*
#include <stdio.h>

void f(int i) {
  fprintf(stdout,"INT: %d\n",i);
}
*/
import "C"

import (
        "fmt"
)

func main() {
        // Simple C function call.
        C.f(C.int(1))
        fmt.Println("ABC")
}

На других платформах тип C указан правильно. Я пропустил флаг компилятора во время компиляции gcc?

configure из gcc вызывается с использованием:

../configure --prefix=<path>/gcc-solaris-9.1.0 --enable-languages=c,c++,go,objc,lto

У кого-нибудь есть подсказка, как правильно скомпилировать gccgo на Solaris SPARC? Отсутствует ли заголовок включения файловой зависимости, который требуется для Solaris?

...