[Bug go/89447] libgo largefile support is incomplete and inconsistent

2019-03-11 Thread ro at CeBiTec dot Uni-Bielefeld.DE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89447

--- Comment #7 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #6 from Ian Lance Taylor  ---
> I've committed a version of your patch, which I hope will fix all the 
> problems.
>  Please let me know if not.

I've just bootstrapped with your patch on i386-pc-solaris2.11 and
sparc-sun-solaris2.11: no regressions.  Besides, I've checked for calls
to libc functions with largefile equivalent in libgo: on i386 there's
only ftruncate and mkstemp (from libffi), here and on sparc there's also
mmap, as mentioned in the PR.  Given that they use the non-largefile
types, those should be fine.

> One change to your patch in particular was that we shouldn't need a C version
> of __go_openat64.  It should suffice to use just __go_openat, since the C code
> should call the right function anyhow.  The bug was that
> libgo/go/internal/syscall/unix/at.go was referring to openat when it should
> have been referring to __go_openat.

I hadn't thought that fully through indeed; that's why I just attached my
preliminary patch to the PR instead of just submitting it to gcc-patches.

Thanks for fixing things up.

Rainer

[Bug go/89447] libgo largefile support is incomplete and inconsistent

2019-03-08 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89447

Ian Lance Taylor  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Ian Lance Taylor  ---
I've committed a version of your patch, which I hope will fix all the problems.
 Please let me know if not.

One change to your patch in particular was that we shouldn't need a C version
of __go_openat64.  It should suffice to use just __go_openat, since the C code
should call the right function anyhow.  The bug was that
libgo/go/internal/syscall/unix/at.go was referring to openat when it should
have been referring to __go_openat.

[Bug go/89447] libgo largefile support is incomplete and inconsistent

2019-03-08 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89447

--- Comment #5 from ian at gcc dot gnu.org  ---
Author: ian
Date: Sat Mar  9 02:10:22 2019
New Revision: 269521

URL: https://gcc.gnu.org/viewcvs?rev=269521=gcc=rev
Log:
PR go/89447
syscall, internal/syscall: adjust use of largefile functions

Consistently call __go_openat for openat.  Use fstatat64, creat64,
sendfile64, and getdents64 where needed.

Based on patch by Rainer Orth.

Fixes https://gcc.gnu.org/PR89447

Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/166420

Added:
trunk/libgo/go/internal/syscall/unix/at_largefile.go
trunk/libgo/go/internal/syscall/unix/at_regfile.go
trunk/libgo/go/syscall/libcall_bsd_largefile.go
trunk/libgo/go/syscall/libcall_bsd_regfile.go
trunk/libgo/go/syscall/libcall_solaris_largefile.go
trunk/libgo/go/syscall/libcall_solaris_regfile.go
Removed:
trunk/libgo/go/syscall/libcall_solaris.go
Modified:
trunk/gcc/go/gofrontend/MERGE
trunk/libgo/go/internal/syscall/unix/at.go
trunk/libgo/go/syscall/libcall_bsd.go
trunk/libgo/go/syscall/libcall_posix.go
trunk/libgo/go/syscall/libcall_posix_largefile.go
trunk/libgo/go/syscall/libcall_posix_regfile.go

[Bug go/89447] libgo largefile support is incomplete and inconsistent

2019-02-22 Thread ro at CeBiTec dot Uni-Bielefeld.DE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89447

--- Comment #4 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #3 from Eric Botcazou  ---
[...]
> Do you have https://gcc.gnu.org/ml/gcc-patches/2019-02/msg01332.html too?

I have a similar patch from Ian, otherwise results are way worse.

[Bug go/89447] libgo largefile support is incomplete and inconsistent

2019-02-22 Thread ebotcazou at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89447

Eric Botcazou  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2019-02-22
 CC||ebotcazou at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Eric Botcazou  ---
> There are some more on Solaris/SPARC, though, but overall it's not too
> bad either (32 and 64-bit):
> 
>   === libgo Summary ===
> 
> # of expected passes  352
> # of unexpected failures  18

Do you have https://gcc.gnu.org/ml/gcc-patches/2019-02/msg01332.html too?

[Bug go/89447] libgo largefile support is incomplete and inconsistent

2019-02-22 Thread ro at CeBiTec dot Uni-Bielefeld.DE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89447

--- Comment #2 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
FWIW, after this patch and

https://gcc.gnu.org/ml/gcc-patches/2019-02/msg01815.html

only the runtime failures mentioned there and go/build (which times out
after 4 minutes, just as it does on Linux/x86_64 for me) remain on
Solaris/x86.

There are some more on Solaris/SPARC, though, but overall it's not too
bad either (32 and 64-bit):

=== libgo Summary ===

# of expected passes352
# of unexpected failures18

[Bug go/89447] libgo largefile support is incomplete and inconsistent

2019-02-22 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89447

Rainer Orth  changed:

   What|Removed |Added

   Target Milestone|--- |9.0

[Bug go/89447] libgo largefile support is incomplete and inconsistent

2019-02-22 Thread ro at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=89447

--- Comment #1 from Rainer Orth  ---
Created attachment 45796
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=45796=edit
Initial patch