Comments (5)
For example look at
https://gist.github.com/citrus-it/96d579c065c9497f1f4c8ca0cb342904
STARTFILE_ARCH_SPEC change. This is from illumos/gcc 8.x branch to OmniOS's version. We need at least this change.
from gcc.
gcc 4 / stock gcc 7
%{ansi:values-Xc.o%s}
%{!ansi:values-Xa.o%s}
illumos gcc7
%{
std=c1x|std=gnu1x:values-Xc.o%s values-xpg6.o%s;
std=c11|std=gnu11:values-Xc.o%s values-xpg6.o%s;
std=c99|std=gnu99:values-Xc.o%s values-xpg6.o%s;
std=c9x|std=gnu9x:values-Xc.o%s values-xpg6.o%s;
std=c++0x|std=gnu++0x:values-Xc.o%s;
std=c++11|std=gnu++11:values-Xc.o%s;
std=c++03|std=gnu++03:values-Xc.o%s;
:values-Xa.o%s
}
stock/illumos gcc8
%{!shared:%{!symbolic:
%{ansi|std=c*|std=iso9899\\:199409:values-Xc.o%s; :values-Xa.o%s}
%{std=c90|std=gnu90:values-xpg4.o%s; :values-xpg6.o%s}
}}
from gcc.
I suspect we should probably use something like:
%{!shared:%{!symbolic:
%{ansi|std=c*|std=iso9899\\:199409:values-Xc.o%s; :values-Xa.o%s}
%{std=c89|std=gnu89:;
std=c90|std=gnu90:values-xpg4.o%s; :values-xpg6.o%s}
}}
(assuming that syntax works)
from gcc.
I did a comparison of the values files between gcc 7, 8 and 9 on OpenIndiana. The results are summarised below:
flags | gcc7 | gcc8 | gcc9 |
---|---|---|---|
c89 32 | Xa | Xc xpg4 | Xc xpg4 |
c89 32 -ansi | Xa | Xc xpg4 | Xc xpg4 |
c89 64 | Xa | Xc xpg4 | Xc xpg4 |
c89 64 -ansi | Xa | Xc xpg4 | Xc xpg4 |
c90 32 | Xa | Xc xpg4 | Xc xpg4 |
c90 32 -ansi | Xa | Xc xpg4 | Xc xpg4 |
c90 64 | Xa | Xc xpg4 | Xc xpg4 |
c90 64 -ansi | Xa | Xc xpg4 | Xc xpg4 |
c99 32 | Xc xpg6 | Xc xpg6 | Xc xpg6 |
c99 32 -ansi | Xc xpg6 | Xc xpg6 | Xc xpg6 |
c99 64 | Xc xpg6 | Xc xpg6 | Xc xpg6 |
c99 64 -ansi | Xc xpg6 | Xc xpg6 | Xc xpg6 |
c11 32 | Xc xpg6 | Xc xpg6 | Xc xpg6 |
c11 32 -ansi | Xc xpg6 | Xc xpg6 | Xc xpg6 |
c11 64 | Xc xpg6 | Xc xpg6 | Xc xpg6 |
c11 64 -ansi | Xc xpg6 | Xc xpg6 | Xc xpg6 |
gnu89 32 | Xa | Xa xpg4 | Xa xpg4 |
gnu89 32 -ansi | Xa | Xc xpg4 | Xc xpg4 |
gnu89 64 | Xa | Xa xpg4 | Xa xpg4 |
gnu89 64 -ansi | Xa | Xc xpg4 | Xc xpg4 |
gnu90 32 | Xa | Xa xpg4 | Xa xpg4 |
gnu90 32 -ansi | Xa | Xc xpg4 | Xc xpg4 |
gnu90 64 | Xa | Xa xpg4 | Xa xpg4 |
gnu90 64 -ansi | Xa | Xc xpg4 | Xc xpg4 |
gnu99 32 | Xc xpg6 | Xa xpg6 | Xa xpg6 |
gnu99 32 -ansi | Xc xpg6 | Xc xpg6 | Xc xpg6 |
gnu99 64 | Xc xpg6 | Xa xpg6 | Xa xpg6 |
gnu99 64 -ansi | Xc xpg6 | Xc xpg6 | Xc xpg6 |
gnu11 32 | Xc xpg6 | Xa xpg6 | Xa xpg6 |
gnu11 32 -ansi | Xc xpg6 | Xc xpg6 | Xc xpg6 |
gnu11 64 | Xc xpg6 | Xa xpg6 | Xa xpg6 |
gnu11 64 -ansi | Xc xpg6 | Xc xpg6 | Xc xpg6 |
from gcc.
Having applied the patch in #33 to gcc8, the results are:
flags | gcc7 | gcc8 |
---|---|---|
c89 32 | Xa | Xa |
c89 32 -ansi | Xa | Xa |
c89 64 | Xa | Xa |
c89 64 -ansi | Xa | Xa |
c90 32 | Xa | Xa |
c90 32 -ansi | Xa | Xa |
c90 64 | Xa | Xa |
c90 64 -ansi | Xa | Xa |
c99 32 | Xc xpg6 | Xc xpg6 |
c99 32 -ansi | Xc xpg6 | Xc xpg6 |
c99 64 | Xc xpg6 | Xc xpg6 |
c99 64 -ansi | Xc xpg6 | Xc xpg6 |
c11 32 | Xc xpg6 | Xc xpg6 |
c11 32 -ansi | Xc xpg6 | Xc xpg6 |
c11 64 | Xc xpg6 | Xc xpg6 |
c11 64 -ansi | Xc xpg6 | Xc xpg6 |
gnu89 32 | Xa | Xa |
gnu89 32 -ansi | Xa | Xa |
gnu89 64 | Xa | Xa |
gnu89 64 -ansi | Xa | Xa |
gnu90 32 | Xa | Xa |
gnu90 32 -ansi | Xa | Xa |
gnu90 64 | Xa | Xa |
gnu90 64 -ansi | Xa | Xa |
gnu99 32 | Xc xpg6 | Xa xpg6 |
gnu99 32 -ansi | Xc xpg6 | Xc xpg6 |
gnu99 64 | Xc xpg6 | Xa xpg6 |
gnu99 64 -ansi | Xc xpg6 | Xc xpg6 |
gnu11 32 | Xc xpg6 | Xa xpg6 |
gnu11 32 -ansi | Xc xpg6 | Xc xpg6 |
gnu11 64 | Xc xpg6 | Xa xpg6 |
gnu11 64 -ansi | Xc xpg6 | Xc xpg6 |
from gcc.
Related Issues (19)
- SPARC -no-integer-ldd-std HOT 1
- -Wno-vastart-last-param is a complete hack HOT 2
- Possibly remove -fno-dwarf2-indirect-strings HOT 1
- plural.c regeneration is unnecessary
- stray character in sparc.c
- sol2-c.c's avoidance of %< %> makes no sense
- #pragma init/fini should use DECL_P
- -fconstant-pools is unused and can go away
- Could let #pragma align() work the normal way HOT 4
- Need a way to pacify cross-ISA system calls
- nonexistent directory "/opt/gcc/4.4.4/lib/gcc/i386-pc-solaris2.11/4.4.4/../../../../i386-pc-solaris2.11/include" HOT 3
- feature request: add HANDLE_PRAGMA_PACK_PUSH_POP HOT 6
- initial 9.1 work HOT 5
- Need way to properly name retpoline thunks HOT 1
- Building an illumos gcc 9.2.0 HOT 3
- libstdc++ must use thread-local errno HOT 2
- want -fforce-omit-frame-pointer option HOT 1
- Y hi
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gcc.