On Thu, Jan 25, 2018 at 12:28 PM, Rainer Orth <r...@cebitec.uni-bielefeld.de> wrote: > >> This patch to the Go frontend rationalizes the external symbol names >> that appear in assembler code. It changes from the ad hoc mechanisms >> used to date to produce a set of names that are at least somewhat more >> coherent. They are also more readable, after applying a simple >> demangling algorithms outlined in the long comment in names.cc. The >> new names use only ASCII alphanumeric characters, underscore, and dot >> (which fixes AIX by avoiding the use of dollar sign). If we really >> had to we could replace dot with underscore at the cost of forbidding >> some uses of underscore in Go identifier names. >> >> A minor cleanup discovered during this was that we were treating >> function types as different if one had a NULL parameters_ field and >> another has a non-NULL parameters_ field that has no parameters. This >> worked because we mangled them slightly differently. We now mangle >> them the same, so we treat them as equal, as we should anyhow. >> >> Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu. Committed >> to mainline. > > this patch almost certainly (i.e. I didn't reghunt, but it's the only > plausible candidate between r257023 and r257057) Solaris/x86 bootstrap > with /bin/as: > > Assembler: doc.go > "/var/tmp//ccbyjwCc.s", line 1043 : Syntax error > Near line: " .globl .1fmt.fmt.clearflags" > "/var/tmp//ccbyjwCc.s", line 1044 : Syntax error > Near line: " .type .1fmt.fmt.clearflags, @function" > "/var/tmp//ccbyjwCc.s", line 1045 : Illegal mnemonic > Near line: ".1fmt.fmt.clearflags:" > "/var/tmp//ccbyjwCc.s", line 1045 : Syntax error > Near line: ".1fmt.fmt.clearflags:" > "/var/tmp//ccbyjwCc.s", line 1045 : Syntax error > Near line: ".1fmt.fmt.clearflags:" > "/var/tmp//ccbyjwCc.s", line 1058 : Syntax error > Near line: " .size .1fmt.fmt.clearflags, .-.1fmt.fmt.clearflags" > "/var/tmp//ccbyjwCc.s", line 1060 : Syntax error > Near line: " .globl .1fmt.pp.Width" > "/var/tmp//ccbyjwCc.s", line 1061 : Syntax error > Near line: " .type .1fmt.pp.Width, @function" > "/var/tmp//ccbyjwCc.s", line 1062 : Illegal mnemonic > Near line: ".1fmt.pp.Width:" > "/var/tmp//ccbyjwCc.s", line 1062 : Syntax error > Near line: ".1fmt.pp.Width:" > "/var/tmp//ccbyjwCc.s", line 1062 : Syntax error > Near line: ".1fmt.pp.Width:" > "/var/tmp//ccbyjwCc.s", line 1082 : Syntax error > Near line: " .size .1fmt.pp.Width, .-.1fmt.pp.Width" > "/var/tmp//ccbyjwCc.s", line 1084 : Syntax error > Near line: " .globl .1fmt.pp.Precision" > "/var/tmp//ccbyjwCc.s", line 1085 : Syntax error > Near line: " .type .1fmt.pp.Precision, @function" > "/var/tmp//ccbyjwCc.s", line 1086 : Illegal mnemonic > Near line: ".1fmt.pp.Precision:" > "/var/tmp//ccbyjwCc.s", line 1086 : Syntax error > Near line: ".1fmt.pp.Precision:" > "/var/tmp//ccbyjwCc.s", line 1086 : Syntax error > Near line: ".1fmt.pp.Precision:" > "/var/tmp//ccbyjwCc.s", line 1106 : Syntax error > Near line: " .size .1fmt.pp.Precision, .-.1fmt.pp.Precision" > "/var/tmp//ccbyjwCc.s", line 1108 : Syntax error > Near line: " .globl .1fmt.ss.Width" > "/var/tmp//ccbyjwCc.s", line 1109 : Syntax error > Near line: " .type .1fmt.ss.Width, @function" > "/var/tmp//ccbyjwCc.s", line 1110 : Illegal mnemonic > Near line: ".1fmt.ss.Width:" > "/var/tmp//ccbyjwCc.s", line 1110 : Syntax error > Near line: ".1fmt.ss.Width:" > "/var/tmp//ccbyjwCc.s", line 1110 : Syntax error > Near line: ".1fmt.ss.Width:" > "/var/tmp//ccbyjwCc.s", line 1149 : Syntax error > Near line: " .size .1fmt.ss.Width, .-.1fmt.ss.Width" > "/var/tmp//ccbyjwCc.s", line 1151 : Syntax error > Near line: " .globl .1fmt.ss.UnreadRune" > "/var/tmp//ccbyjwCc.s", line 1152 : Syntax error > Near line: " .type .1fmt.ss.UnreadRune, @function" > "/var/tmp//ccbyjwCc.s", line 1153 : Illegal mnemonic > Near line: ".1fmt.ss.UnreadRune:" > "/var/tmp//ccbyjwCc.s", line 1153 : Syntax error > Near line: ".1fmt.ss.UnreadRune:" > "/var/tmp//ccbyjwCc.s", line 1153 : Syntax error > Near line: ".1fmt.ss.UnreadRune:" > "/var/tmp//ccbyjwCc.s", line 1209 : Syntax error > Near line: " .size .1fmt.ss.UnreadRune, .-.1fmt.ss.UnreadRune" > "/var/tmp//ccbyjwCc.s", line 1908 : Syntax error > Near line: " .globl .1fmt.fmt.init" > Too many errors - Goodbye > make[4]: *** [Makefile:3322: fmt.lo] Error 1 > > Solaris/SPARC with /bin/as is fine, but that's not too astonishing since > both assemblers are mostly different code bases.
>From the error messages I guess the problem is that the assembler doesn't like symbols that start with ".1". Do you know what names the assembler permits? Ian