This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libgo patch committed: Implement reflect.MakeFunc for 386


Ian Lance Taylor <iant@google.com> writes:

> Following up on my earlier patch, this patch implements the
> reflect.MakeFunc function for 386.
>
> Tom Tromey pointed out to me that the libffi closure support can
> probably be used for this.  I was not aware of that support.  It
> supports a lot more processors, and I should probably start using it.
> The approach I am using does have a couple of advantages: it's more
> efficient, and it doesn't require any type of writable executable
> memory.  I can get away with that because indirect calls in Go always
> pass a closure value.  So even when and if I do change to using libffi,
> I might still keep this code for amd64 and 386.

Unfortunately, this patch (and undoubtedly the corresponding amd64 one)
break Solaris/x86 libgo bootstrap with native as:

Assembler: 
	"/var/tmp//cctly9hk.s", line 8 : Illegal mnemonic
	Near line: " .cfi_startproc"
	"/var/tmp//cctly9hk.s", line 8 : Syntax error
	Near line: " .cfi_startproc"
	"/var/tmp//cctly9hk.s", line 21 : Illegal mnemonic
	Near line: " .cfi_def_cfa_offset 8"
	"/var/tmp//cctly9hk.s", line 21 : Syntax error
	Near line: " .cfi_def_cfa_offset 8"
	"/var/tmp//cctly9hk.s", line 22 : Illegal mnemonic
	Near line: " .cfi_offset %ebp, -8"
	"/var/tmp//cctly9hk.s", line 22 : Syntax error
	Near line: " .cfi_offset %ebp, -8"
	"/var/tmp//cctly9hk.s", line 24 : Illegal mnemonic
	Near line: " .cfi_def_cfa_register %ebp"
	"/var/tmp//cctly9hk.s", line 24 : Syntax error
	Near line: " .cfi_def_cfa_register %ebp"
	"/var/tmp//cctly9hk.s", line 27 : Illegal mnemonic
	Near line: " .cfi_offset %ebx, -12"
	"/var/tmp//cctly9hk.s", line 27 : Syntax error
	Near line: " .cfi_offset %ebx, -12"
	"/var/tmp//cctly9hk.s", line 45 : Illegal mnemonic
	Near line: " .cfi_restore %ebx"
	"/var/tmp//cctly9hk.s", line 45 : Syntax error
	Near line: " .cfi_restore %ebx"
	"/var/tmp//cctly9hk.s", line 47 : Illegal mnemonic
	Near line: " .cfi_restore %ebp"
	"/var/tmp//cctly9hk.s", line 47 : Syntax error
	Near line: " .cfi_restore %ebp"
	"/var/tmp//cctly9hk.s", line 48 : Illegal mnemonic
	Near line: " .cfi_def_cfa %esp, 4"
	"/var/tmp//cctly9hk.s", line 48 : Syntax error
	Near line: " .cfi_def_cfa %esp, 4"
	"/var/tmp//cctly9hk.s", line 50 : Illegal mnemonic
	Near line: " .cfi_endproc"
	"/var/tmp//cctly9hk.s", line 50 : Syntax error
	Near line: " .cfi_endproc"
	"/var/tmp//cctly9hk.s", line 52 : Invalid section attribute
	"/var/tmp//cctly9hk.s", line 52 : Syntax error
	Near line: " .section .text.__x86.get_pc_thunk.bx,"axG",@progbits,__x86.get_pc_thunk.bx,comdat"
	"/var/tmp//cctly9hk.s", line 57 : Illegal mnemonic
	Near line: " .cfi_startproc"
	"/var/tmp//cctly9hk.s", line 57 : Syntax error
	Near line: " .cfi_startproc"
	"/var/tmp//cctly9hk.s", line 60 : Illegal mnemonic
	Near line: " .cfi_endproc"
	"/var/tmp//cctly9hk.s", line 60 : Syntax error
	Near line: " .cfi_endproc"
	"/var/tmp//cctly9hk.s", line 62 : Syntax error
	Near line: " .section .note.GNU-stack,"",@progbits"
	"/var/tmp//cctly9hk.s", line 63 : Syntax error
	Near line: " .section .note.GNU-split-stack,"",@progbits"
	"/var/tmp//cctly9hk.s", line 64 : Syntax error
	Near line: " .section .note.GNU-no-split-stack,"",@progbits"
make[4]: *** [reflect/makefunc.lo] Error 1

AFAICS, this is just the .cfi_* directives and empty section flags.

	Rainer

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]