-
Notifications
You must be signed in to change notification settings - Fork 14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use appropriate values objects (gcc8) #33
Conversation
gcc/config/sol2.h
Outdated
std=c89|std=c90|std=gnu89|std=gnu90:; \ | ||
std=c90|std=gnu90:values-xpg4.o%s; \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This seems weirdly phrased?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, the second line (206) needs removing, or the first changing to just match c89.. thanks.
ansi|std=c*|std=iso9899\\:199409:values-Xc.o%s; \ | ||
:values-Xa.o%s} \ | ||
%{ \ | ||
std=c89|std=c90|std=gnu89|std=gnu90:; \ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does this not leave us failing to select values-xpg4 at all now?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh. Right! I remember this now, I think.
This is the thing where there's no compiler-y flag that actually implies xpg4, because that's entirely orthogonal to the C standard (whereas xpg6 and c99 are intimately connected), right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Strictly speaking xpg6 implies c99, but the way we've done everything per lib/libc/inc/xpg6.h
basically says that c99 behavior is values-xpg6.o. And I guess we'd want to make sure that we're in c11 mode as well.
xpg4 requires c89, but I think that your general note is correct that at least as libc is concerned, xpg4 is orthogonal to the C standard.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A somewhat naïve comparison between gcc-7-il and gcc-8 with this patch is below:
The results are consistent apart from gnu99 and gnu11 without -ansi
. Do either of you have any insights on that?
(edit: I removed the 32-bit object results since they are identical and just make the table longer than necessary)
@tsoome - was this one of the sources of your problems with gcc9 and _lib_version?
flags | gcc7 | gcc8 |
---|---|---|
c89 64 | Xa | Xa |
c89 64 -ansi | Xa | Xa |
c90 64 | Xa | Xa |
c90 64 -ansi | Xa | Xa |
c99 64 | Xc xpg6 | Xc xpg6 |
c99 64 -ansi | Xc xpg6 | Xc xpg6 |
c11 64 | Xc xpg6 | Xc xpg6 |
c11 64 -ansi | Xc xpg6 | Xc xpg6 |
gnu89 64 | Xa | Xa |
gnu89 64 -ansi | Xa | Xa |
gnu90 64 | Xa | Xa |
gnu90 64 -ansi | Xa | Xa |
gnu99 64 | Xc xpg6 | Xa xpg6 |
gnu99 64 -ansi | Xc xpg6 | Xc xpg6 |
gnu11 64 | Xc xpg6 | Xa xpg6 |
gnu11 64 -ansi | Xc xpg6 | Xc xpg6 |
No description provided.