www.cendio.com
Bug 5430 - Upgrade GCC to 4.9.X
: Upgrade GCC to 4.9.X
Status: CLOSED FIXED
: ThinLinc
Build system
: trunk
: PC Unknown
: P2 Normal
: 4.5.0
Assigned To:
:
:
: 4793 5256
:
  Show dependency treegraph
 
Reported: 2015-02-11 09:54 by
Modified: 2015-10-15 08:27 (History)


Attachments
CTC patch to fix (some) GCC 4.9 problems (2.44 KB, patch)
2015-02-11 09:57, Peter Åstrand
Details


Note

You need to log in before you can comment on or make changes to this bug.


Description From cendio 2015-02-11 09:54:16
Continuation of bug 5256. We should eventually upgrade to GCC 4.9.X or later.
------- Comment #1 From cendio 2015-02-11 09:57:59 -------
Created an attachment (id=598) [details]
CTC patch to fix (some) GCC 4.9 problems
------- Comment #2 From cendio 2015-06-22 10:14:52 -------
libgcc_s is getting pulled in a lot more on Windows builds. Unfortunately PE
COFF is horrible so the magic that is being used on ELF system to keep libgcc_s
usage sane cannot be used there.

In our current gcc libgcc_s is only used if you explicitly specify
-shared-libgcc. In the new gcc you'll get libgcc_s by default for DLL:s, but
not exe:s. It looks like it will be libgcc_s by default for both soon though.

We need to update our Makefile:s to deal with this. Right now it's opensc and
pulseaudio that's affected.
------- Comment #3 From cendio 2015-06-22 12:42:26 -------
(In reply to comment #2)
> libgcc_s is getting pulled in a lot more on Windows builds. Unfortunately PE
> COFF is horrible so the magic that is being used on ELF system to keep libgcc_s
> usage sane cannot be used there.
> 
> In our current gcc libgcc_s is only used if you explicitly specify
> -shared-libgcc. In the new gcc you'll get libgcc_s by default for DLL:s, but
> not exe:s. It looks like it will be libgcc_s by default for both soon though.
> 
> We need to update our Makefile:s to deal with this. Right now it's opensc and
> pulseaudio that's affected.

r30453.
------- Comment #4 From cendio 2015-06-22 15:04:03 -------
ld64 upgraded and packaged separately in r30466.
------- Comment #5 From cendio 2015-06-22 15:25:27 -------
gcc upgraded to 5.1.0 in r30472.
------- Comment #6 From cendio 2015-06-22 15:35:09 -------
All done. Tester should verify that we are using 5.1.0 in our build
environment, and that our binaries work on every of our targets. Testing the
client and its local redirections is sufficient.
------- Comment #7 From cendio 2015-07-13 14:57:55 -------
unfsd seems broken on Windows:

> $ tl-mount-localdrives
> mount.nfs: access denied by server while mounting localhost:@otp:[...]/c/Temp

This is build 4824. Happens on both Windows 7 and 8 - I haven't tested anything
older.

Dropping in a unfsd binary from 4.4.0 results in everything working fine.
------- Comment #8 From cendio 2015-07-14 10:01:20 -------
There is some file handle lookup issue. The first MNT request succeeds, but the
following FSINFO returns NSF3ERR_STALE. The kernel then retries the MNT and
gets ERR_ACCESS because the nonce is now invalid.
------- Comment #9 From cendio 2015-07-14 11:07:24 -------
Urgh. It seems the packed attribute is broken for Windows targets on gcc 4.7+.
Upstream bug report:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=52991

Although it might have worked without this bug, it isn't entirely clear it's
safe anyway since apparently gcc and visual studio packs things differently. So
I still suggest my general principle of staying clear of packed and type
punning.
------- Comment #10 From cendio 2015-07-14 17:00:40 -------
unfsd improved in r30605. Also need to revert the default in gcc.
------- Comment #11 From cendio 2015-07-15 13:29:27 -------
gcc default changed in r30607.

Probably need to retest the Windows binaries a bit after this.
------- Comment #12 From cendio 2015-07-23 17:05:41 -------
(In reply to comment #6)
> All done. Tester should verify that we are using 5.1.0 in our build
> environment, and that our binaries work on every of our targets. Testing the
> client and its local redirections is sufficient.

Apart from the now-fixed unfsd bug from comment #7, I found no flaws testing
all the clients, and the fix for comment #7 is working just fine.
------- Comment #13 From cendio 2015-10-07 11:07:57 -------
(In reply to comment #10)
> unfsd improved in r30605. Also need to revert the default in gcc.

This commit or the gcc upgrade introduces a regression. unfsd fails to write
files bigger than ~175Mb.

The bug is provoked by using windows thinlinc client and creating a file in
thindrives using: dd if=/dev/zero of=./data.raw bs=1M count=1024.

unfsd reports hudnreds lines of following error to tlclient.log file:

2015-10-07T11:03:30: unfsd[E]: Seeking for offset -1835008 failed when writing.
2015-10-07T11:03:30: unfsd[E]: Seeking for offset -1572864 failed when writing.
2015-10-07T11:03:30: unfsd[E]: Seeking for offset -1310720 failed when writing.
2015-10-07T11:03:30: unfsd[E]: Seeking for offset -1048576 failed when writing.
2015-10-07T11:03:30: unfsd[E]: Seeking for offset -786432 failed when writing.
2015-10-07T11:03:30: unfsd[E]: Seeking for offset -524288 failed when writing.
2015-10-07T11:03:30: unfsd[E]: Seeking for offset -262144 failed when writing.
2015-10-07T11:03:30: unfsd[E]: Seeking for offset -8388608 failed when writing.
2015-10-07T11:03:30: unfsd[E]: Seeking for offset -8126464 failed when writing.