Trying to fix #61880, what characters are valid in assembler/symbol names
Ian Lance Taylor
iant@golang.org
Fri Aug 15 12:44:00 GMT 2014
On Fri, Aug 15, 2014 at 12:48 AM, Alexander Shopov <lists@kambanaria.org> wrote:
>
> The symbol/assembler name (I do not know what is the right word) that
> is generated in the .h header file is:
> extern int Cgoexp_Dummy (int p0)
> __asm__("cgo_problem_example_com_demo.Cgoexp_Dummy");
>
> The symbol that exists in the object file is:
> cgo_problem_example.com_demo.Cgoexp_Dummy
> -------------------^
Normally the first name looks more right. The problem is some
confusion over how to handle a package name that contains a '.'--in
your case, example.com. The go tool will be passing a -fgo-pkgpath
option to gccgo and a -gccgopkgpath option to cgo. You can use "go
build -x" to see the exact commands being run. First make sure that
those options are the same. If they are the same, either gccgo or cgo
is handling the option differently--it looks like one is convert the
'.' to '_' and the other is not. They need to do the same thing.
Ian
More information about the Gcc
mailing list