From: matoro <matoro_mailinglist_kernel@matoro.tk>
To: John David Anglin <dave.anglin@bell.net>, deller@gmx.de
Cc: linux-parisc@vger.kernel.org, Ian Lance Taylor <iant@golang.org>,
hppa@gentoo.org
Subject: Re: Correct goarch.sh settings for gccgo on hppa?
Date: Fri, 25 Nov 2022 23:31:33 -0500 [thread overview]
Message-ID: <cc3d9dc4727b3e7d76e76a2f0bb200ac@matoro.tk> (raw)
In-Reply-To: <67cd6ed7-e2cb-0e0a-5611-e4cd57eb8feb@bell.net>
Thank you both for the suggestions. I tried the following values:
diff --git a/libgo/goarch.sh b/libgo/goarch.sh
index 977f318b3..e0d6a3ad8 100755
--- a/libgo/goarch.sh
+++ b/libgo/goarch.sh
@@ -88,6 +88,16 @@ case $goarch in
;;
esac
;;
+ hppa)
+ bigendian=true
+ defaultphyspagesize=4096
+ family=HPPA
+ int64align=8
+ minframesize=64
+ pcquantum=4
+ ptrsize=4
+ stackalign=64
+ ;;
ia64)
family=IA64
cachelinesize=128
But unfortunately got the same result. I wonder if there is something
else missing?
Ian, if you have the time, I have a machine you can use to look at this.
-------- Original Message --------
Subject: Re: Correct goarch.sh settings for gccgo on hppa?
Date: 2022-11-25 13:45
From: John David Anglin <dave.anglin@bell.net>
To: matoro <matoro_mailinglist_kernel@matoro.tk>,
linux-parisc@vger.kernel.org
I added some comments below.
Some years ago we hacked on gcc to add the go language but we didn't get
it working.
Dave
On 2022-11-25 1:00 p.m., matoro wrote:
> Hi, I was recommended to ask here but I'm trying to enable gccgo to run
> on parisc, however I am not sure what the proper values should be for
> the arch configuration settings. The description is as follows:
>
> # Code in Makefile.am will invoke this script with two arguments.
> # The first is a GOARCH value. The second is a keyword.
> # The script will print the value of that keyword for that GOARCH.
> # Keywords:
> # - bigendian: true or false
> # - cachelinesize: the cache line size in bytes
> # (for performance only; it's not essential to get this right)
> # - defaultphyspagesize: the default physical page size in bytes
> # (not currently used, but maybe some day)
> # - family: the processor family, from ALLGOARCHFAMILY in configure.ac
> # - int64align: alignment of int64 type in bytes
> # - maxalign: maximum alignment of values of Go types in bytes
> # - minframesize: size of smallest possible function frame in bytes
> # (not currently used, may never be used)
> # - pcquantum: minimum size of a single instruction in bytes
> # - ptrsize: size of a pointer in bytes
>
> There is also an undocumented "stackalign" variable.
>
> # Default values
> bigendian=false
> cachelinesize=64
Depends on processor. Max is 128 on machines with PA8800/PA8900
processors.
> defaultphyspagesize=4096
> family=unknown
> int64align=8
> maxalign=8
> minframesize=0
> pcquantum=1
> ptrsize=8
> stackalign=8
>
> This was what I first attempted to set, according to a brief skim of
> the ISA manual:
>
> diff --git a/libgo/goarch.sh b/libgo/goarch.sh
> index 977f318b3..ed40815ac 100755
> --- a/libgo/goarch.sh
> +++ b/libgo/goarch.sh
> @@ -88,6 +88,16 @@ case $goarch in
> ;;
> esac
> ;;
> + hppa)
> + family=HPPA
> + bigendian=true
> + defaultphyspagesize=4096
> + minframesize=16
I think this should be 0 when frame isn't needed. In 32-bit runtime,
minimum frame size is 64
when a frame is allocated.
> + int64align=8
> + stackalign=4
This probably should be 16. It needs to be at least 8 for double and
int64_t. It was set to 16
for ldcw semaphores. This was needed for the original pthread
implementation. Malloc alignment
is 16. However, this causes some issues with over alignment in some
package builds.
> + pcquantum=4
> + ptrsize=4
> + ;;
> ia64)
> family=IA64
> cachelinesize=128
>
> However this was clearly wrong, because while it did build, the
> resulting binary immediately segfaults.
>
> unexpected fault address 0x33d8effc
> fatal error: fault
> [signal SIGSEGV: segmentation violation code=0x1 addr=0x33d8effc
> pc=0xf58f4284]
One would need to debug to find the cause...
>
> goroutine 4 [running]:
> runtime.dopanic__m
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/runtime/panic.go:1207
> runtime.fatalthrow
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/runtime/panic.go:1073
> runtime.throw
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/runtime/panic.go:1044
> runtime.sigpanic
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/runtime/signal_unix.go:714
> net_1http.connectMethod.scheme
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/net/http/transport.go:1829
> net_1http.Transport.dialConn
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/net/http/transport.go:1612
> net_1http.Transport.dialConnFor
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/net/http/transport.go:1449
> runtime.kickoff
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/runtime/proc.go:1316
> created by net_1http.Transport.queueForDial
> /var/tmp/portage/sys-devel/gcc-12.2.1_p20221008/work/gcc-12-20221008/libgo/go/net/http/transport.go:1418
> +0x37b
>
>
> Is there anybody who might be able to advise on what these values
> should be for parisc?
next prev parent reply other threads:[~2022-11-26 4:31 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-11-25 18:00 Correct goarch.sh settings for gccgo on hppa? matoro
2022-11-25 18:31 ` Helge Deller
2022-11-25 18:45 ` John David Anglin
2022-11-26 4:31 ` matoro [this message]
2022-11-26 5:25 ` Ian Lance Taylor
2022-11-26 5:39 ` matoro
[not found] ` <CAOyqgcWK4UhU-GhEvUo26X_UEK_GK-a1xzqr27J98HAe1J9VYg@mail.gmail.com>
2022-11-27 6:53 ` matoro
2022-11-27 8:19 ` Helge Deller
2022-11-28 20:20 ` Ian Lance Taylor
2022-11-28 21:07 ` matoro
2022-11-28 21:24 ` Ian Lance Taylor
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cc3d9dc4727b3e7d76e76a2f0bb200ac@matoro.tk \
--to=matoro_mailinglist_kernel@matoro.tk \
--cc=dave.anglin@bell.net \
--cc=deller@gmx.de \
--cc=hppa@gentoo.org \
--cc=iant@golang.org \
--cc=linux-parisc@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox