From: Roman Shaposhnik <rvs@sun.com>
To: Fans of the OS Plan 9 from Bell Labs <9fans@cse.psu.edu>
Subject: Re: [9fans] gcc on plan9
Date: Wed, 7 Jun 2006 23:42:12 -0700 [thread overview]
Message-ID: <4487C6C4.5000500@sun.com> (raw)
In-Reply-To: <44873F72.7070301@lanl.gov>
Ronald G Minnich wrote:
> IMHO, you know more than I do at this point!
Relatively speaking ;-) I once tried to do the same thing I do with
these 500+ apps with everything that's
available through the Gentoo portage system. To say that I was surprised
would be a gross
understatement. :-(
> So, what's our problem :-) Is all hope lost?
> Is this mess fixable? If so, how?
Now that I understand your goal (which is to provide a way for running a
preselected
set of HPC apps on a Plan9 system) and I can stop confusing it with
inventing a magic
G-wand I'd say that your biggest challenge will be to carefully
retarget the apps in
question from (L)POSIX/C++ environment. I don't believe its a lost
cause, but it all
depends on how messy the apss will turn out to be.
I don't know much about the apps, but here's a list of issues I
personally confronted
while porting Sun Studio C/C++ compiler from Solaris to Linux:
It doesn't matter whether its C, C++ or Fortran -- nowadays its all
about autotools/libtool
recognizing your system, and let me tell you these guys are *wild*. Case
in point: when we
first ported our seed C compiler autoconf was convinced that it was a
PGI compiler running
on an Open?BSD system -- go figure. Once you get past configuring the
apps, every C/C++
compiler gets confronted with two essential interfaces: glibc and
linker/ELF. For a C compiler
dependency on ELF is less of an issues, but for a C++ one its a pretty
big deal. In fact
we had seriously considered porting Solaris ld to Linux just so that we
don't have to depend
on GNU ld messing up object files (we ended up fixing GNU ld, but its a
different story).
Next comes the glibc, which in turn, depends on Linux kernel headers and
wants to get into
compiler business all the time by providing "kosher" crt*.o and
demanding a certain way
of tickling its internals for things like IEEE floating point support to
work properly.
The biggest problem with all of this is that the way C99 (and portions
of the C++) standard
are structured makes it impossible to have a properly functioning
application unless
you have glibc support in certain areas. One of the reasons GCC can't
claim
C99 compliance is because glibc sucks (you can find more on that right here:
http://gcc.gnu.org/gcc-4.1/c99status.html).
Now, you say that you're going to use APE and there I have serious
doubts that things
like FP exception handling and C99 complex will work for you. These two
proved
to be quite essential for the set of HPC apps I have internally from
*our* customers.
Now, suppose that you've overcome all of that. What's next ? C++ of course!
C++ with things like templates instantiations in ELF COMDAT sections and
exception
handling support places lots of additional requirements on how flexible
linker should
be in handling ELF files. Speaking of which -- do you intend to port ELF
to Plan9 as well ?
Once you get past codegeneration the glibc will rear its ugly head once
again. This time
around it'll be about supporting C++ header files which are just there
to wrap around
standard C headers in the latest and greatest std:: namespace. Of
course, I'm talking
about things like <cstring> and <cstdlib>. There again you will start
battling how
gcc configures itself on different systems and how it all can be hooked
up to APE.
Oh, and there's also a question of what to do about MT apps. I'd be very
curious to
know how would you go about solving it on Plan9 as far as PTHREADS are
concerned.
Or may be your apps don't use any (which I find hard to believe for an
HPC market).
That's about it when it comes to the biggies. The sort of things I
distinctly remember
suffering through on a personal level.
On the application level you still have to tame dependencies on things
which go beyond
the scope of C99 or ISO C++ standards, but that's a story for another day.
>> Well, all I can say is -- its a pity that even more resources will
>> be spent on proliferating gcc's bad influence on application
>> developers.
>
> The world sucks. I could not agree more. Propagating all this gnu
> stuff is depressing, makes me wish I did something else for a living
> sometimes. I sort of watch with amazement as people work on the
> segment layout of their ELF files, and discuss what to inline. arg!
>
> thanks, I think you've educated me (I'm dead serious).
Well, I'm glad my emails weren't in vain. I'm very curious to see
how far you can go with the approach
you've chosen, and I'd be glad to share more of the porting experience.
Feel free to drop me emails
on this subject. I've been there and there's a chance I might be able to
help you guys.
Thanks,
Roman.
next prev parent reply other threads:[~2006-06-08 6:42 UTC|newest]
Thread overview: 243+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-06-07 17:58 Corey
2006-06-07 18:24 ` Roman Shaposhnick
2006-06-07 18:50 ` Ronald G Minnich
2006-06-07 18:55 ` William Josephson
2006-06-07 20:12 ` Ronald G Minnich
2006-06-07 20:20 ` Roman Shaposhnick
2006-06-07 20:42 ` Ronald G Minnich
2006-06-07 20:44 ` William Josephson
2006-06-07 21:00 ` Ronald G Minnich
2006-06-07 19:05 ` Roman Shaposhnick
2006-06-07 20:13 ` Ronald G Minnich
2006-06-07 20:48 ` Roman Shaposhnick
2006-06-07 21:04 ` Ronald G Minnich
2006-06-08 6:42 ` Roman Shaposhnik [this message]
2006-06-08 7:00 ` Iruatã Souza (muzgo)
2006-06-07 19:48 ` Corey
2006-06-07 20:16 ` Ronald G Minnich
2006-06-07 20:26 ` Roman Shaposhnick
2006-06-07 20:43 ` Ronald G Minnich
2006-06-08 5:49 ` lucio
2006-06-07 18:57 ` Francisco J Ballesteros
2006-06-07 19:55 ` Corey
2006-06-07 20:46 ` rog
2006-06-07 21:07 ` Corey
2006-06-07 21:16 ` Christoph Lohmann
2006-06-07 21:25 ` Rodolfo (kix)
2006-06-07 21:50 ` Corey
2006-06-07 21:54 ` David Leimbach
2006-06-07 21:56 ` Ronald G Minnich
2006-06-07 22:06 ` Lluís Batlle i Rossell
2006-06-07 22:16 ` David Leimbach
2006-06-07 22:31 ` Francisco J Ballesteros
2006-06-07 22:33 ` Ronald G Minnich
2006-06-08 9:44 ` Victor Nazarov
2006-06-09 21:13 ` Roman Shaposhnick
2006-06-08 1:28 ` quanstro
2006-06-09 13:12 ` Lluís Batlle
2006-06-09 13:21 ` quanstro
2006-06-09 13:47 ` Lluís Batlle
2006-06-07 23:04 ` geoff
2006-06-07 23:10 ` Steve Simon
2006-06-08 0:22 ` Bakul Shah
2006-06-08 0:27 ` geoff
2006-06-08 3:31 ` Ronald G Minnich
2006-06-08 15:04 ` David Leimbach
2006-06-08 15:20 ` Ronald G Minnich
2006-06-07 23:15 ` andrey mirtchovski
2006-06-08 0:17 ` geoff
2006-06-09 21:15 ` Roman Shaposhnick
2006-06-09 21:26 ` andrey mirtchovski
2006-06-09 21:27 ` andrey mirtchovski
2006-06-09 21:34 ` Roman Shaposhnick
2006-06-09 21:38 ` andrey mirtchovski
2006-06-09 21:44 ` andrey mirtchovski
2006-06-10 6:57 ` "Nils O. Selåsdal"
2006-06-08 1:58 ` Latchesar Ionkov
2006-06-08 0:53 ` geoff
2006-06-08 1:07 ` Latchesar Ionkov
2006-06-08 1:15 ` quanstro
2006-06-08 15:02 ` David Leimbach
2006-06-09 4:04 ` quanstro
2006-06-08 1:22 ` geoff
2006-06-08 1:25 ` Latchesar Ionkov
2006-06-09 21:21 ` Roman Shaposhnick
2006-06-09 21:27 ` Roman Shaposhnick
2006-06-08 14:59 ` David Leimbach
2006-06-09 4:05 ` quanstro
2006-06-08 1:39 ` [9fans] quantity vs. quality Lyndon Nerenberg
2006-06-08 3:05 ` Dan Cross
2006-06-08 3:44 ` Joel Salomon
2006-06-08 7:03 ` Roman Shaposhnik
2006-06-09 22:03 ` Roman Shaposhnick
2006-06-09 22:44 ` David Leimbach
2006-06-09 22:46 ` quanstro
2006-06-09 22:51 ` Latchesar Ionkov
2006-06-09 22:55 ` quanstro
2006-06-09 23:19 ` Latchesar Ionkov
2006-06-09 23:29 ` quanstro
2006-06-10 1:57 ` Latchesar Ionkov
2006-06-09 23:51 ` quanstro
2006-06-10 0:10 ` Roman Shaposhnick
2006-06-10 2:31 ` Latchesar Ionkov
2006-06-10 0:45 ` Roman Shaposhnick
2006-06-10 3:01 ` Latchesar Ionkov
2006-06-10 0:52 ` quanstro
2006-06-10 1:04 ` Roman Shaposhnick
2006-06-10 23:13 ` Ronald G Minnich
2006-06-11 0:44 ` quanstro
2006-06-11 5:08 ` lucio
2006-06-11 10:09 ` quanstro
2006-06-11 12:00 ` lucio
2006-06-11 22:59 ` quanstro
2006-06-11 23:26 ` geoff
2006-06-12 3:45 ` Paul Lalonde
2006-06-12 20:16 ` Ronald G Minnich
2006-06-12 20:23 ` Roman Shaposhnick
2006-06-12 20:56 ` Ronald G Minnich
2006-06-12 21:09 ` Victor Nazarov
2006-06-13 0:05 ` Roman Shaposhnik
2006-06-12 21:15 ` Francisco J Ballesteros
2006-06-13 12:08 ` rog
2006-06-13 16:34 ` Skip Tavakkolian
2006-06-13 21:35 ` "Nils O. Selåsdal"
2006-06-14 22:09 ` Roman Shaposhnick
2006-06-15 15:46 ` Victor Nazarov
2006-06-11 5:42 ` Russ Cox
2006-06-11 10:08 ` quanstro
2006-06-12 1:03 ` Roman Shaposhnik
2006-06-10 23:05 ` Ronald G Minnich
2006-06-11 0:00 ` quanstro
2006-06-10 0:24 ` andrey mirtchovski
2006-06-10 0:36 ` quanstro
2006-06-10 2:27 ` Latchesar Ionkov
2006-06-10 0:23 ` quanstro
2006-06-10 0:41 ` Paul Lalonde
2006-06-10 0:59 ` quanstro
2006-06-10 1:15 ` Paul Lalonde
2006-06-10 5:19 ` Bruce Ellis
2006-06-10 2:51 ` Latchesar Ionkov
2006-06-10 0:45 ` quanstro
2006-06-10 3:10 ` Latchesar Ionkov
2006-06-10 0:53 ` quanstro
2006-06-10 23:06 ` Ronald G Minnich
2006-06-10 23:15 ` geoff
2006-06-11 2:58 ` jmk
2006-06-10 23:04 ` Ronald G Minnich
2006-06-11 0:05 ` quanstro
2006-06-10 23:03 ` Ronald G Minnich
2006-06-09 23:25 ` Ronald G Minnich
2006-06-09 23:38 ` David Leimbach
2006-06-09 23:45 ` andrey mirtchovski
2006-06-09 23:46 ` Paul Lalonde
2006-06-10 23:03 ` Ronald G Minnich
2006-06-10 23:02 ` Ronald G Minnich
2006-06-11 0:12 ` quanstro
2006-06-11 2:20 ` Ronald G Minnich
2006-06-11 22:31 ` David Leimbach
2006-06-10 0:28 ` Roman Shaposhnick
2006-06-09 21:29 ` Roman Shaposhnick
2006-06-09 21:34 ` andrey mirtchovski
2006-06-08 1:49 ` [9fans] gcc on plan9 Ignacio Torres Masdeu
2006-06-08 14:10 ` David Leimbach
2006-06-09 4:09 ` quanstro
2006-06-09 5:25 ` David Leimbach
2006-06-07 22:39 ` Corey
2006-06-07 22:49 ` Paul Lalonde
2006-06-07 23:17 ` Corey
2006-06-07 23:37 ` Paul Lalonde
2006-06-08 0:50 ` quanstro
2006-06-08 1:16 ` John Barham
2006-06-08 14:51 ` David Leimbach
2006-06-09 4:49 ` ems
2006-06-09 12:07 ` quanstro
2006-06-09 19:17 ` Roman Shaposhnick
2006-06-09 21:27 ` Bakul Shah
2006-06-09 21:33 ` Francisco J Ballesteros
2006-06-09 21:39 ` quanstro
2006-06-09 21:56 ` Francisco J Ballesteros
2006-06-09 22:01 ` quanstro
2006-06-09 22:17 ` Francisco J Ballesteros
2006-06-09 22:35 ` quanstro
2006-06-09 22:22 ` Bakul Shah
2006-06-09 22:30 ` quanstro
2006-06-09 23:22 ` Bakul Shah
2006-06-10 13:51 ` Francisco J Ballesteros
2006-06-10 23:21 ` Ronald G Minnich
2006-06-11 0:07 ` LiteStar numnums
2006-06-10 0:00 ` Harri Haataja
2006-06-10 0:03 ` Bruce Ellis
2006-06-10 1:00 ` Roman Shaposhnick
2006-06-10 4:37 ` Iruatã Souza (muzgo)
2006-06-12 0:35 ` Roman Shaposhnik
2006-06-09 21:43 ` quanstro
2006-06-10 12:43 ` rog
2006-06-07 22:56 ` Christoph Lohmann
2006-06-07 23:08 ` Dan Cross
2006-06-07 23:32 ` Federico G. Benavento
2006-06-07 23:48 ` Dan Cross
2006-06-08 0:32 ` Corey
2006-06-08 1:04 ` jmk
2006-06-08 3:35 ` Ronald G Minnich
2006-06-08 3:51 ` Ronald G Minnich
2006-06-08 4:07 ` Roman Shaposhnik
2006-06-08 5:19 ` Ronald G Minnich
2006-06-08 6:07 ` Federico G. Benavento
2006-06-08 17:45 ` Micah Stetson
2006-06-08 18:54 ` Ronald G Minnich
2006-06-08 18:55 ` Iruatã Souza (muzgo)
2006-06-08 18:56 ` andrey mirtchovski
2006-06-08 19:01 ` Iruatã Souza (muzgo)
2006-06-09 19:56 ` Roman Shaposhnick
2006-06-09 22:19 ` quanstro
2006-06-09 23:19 ` Ronald G Minnich
2006-06-08 4:11 ` Paul Lalonde
2006-06-08 5:25 ` ems
2006-06-08 5:43 ` Simon Williams
2006-06-08 6:09 ` Bruce Ellis
2006-07-16 15:17 ` ASCII Glenda (was Re: [9fans] gcc on plan9) csant
2006-07-16 22:17 ` e.c.sharpe
2006-07-16 22:37 ` Jack Johnson
2006-07-17 8:35 ` Rodolfo (kix)
2006-06-08 1:06 ` [9fans] gcc on plan9 geoff
2006-06-08 1:21 ` quanstro
2006-06-08 10:15 ` Victor Nazarov
2006-06-08 9:40 ` Lluís Batlle
2006-06-08 15:55 ` Corey
2006-06-08 22:48 ` Fred Wade
2006-06-08 23:08 ` Roman Shaposhnick
2006-06-08 23:51 ` Corey
2006-06-07 20:46 ` Latchesar Ionkov
2006-06-07 19:07 ` Roman Shaposhnick
2006-06-07 19:17 ` Latchesar Ionkov
2006-06-07 19:26 ` Roman Shaposhnick
2006-06-07 19:35 ` Brantley Coile
2006-06-07 20:15 ` Ronald G Minnich
2006-06-07 20:32 ` Roman Shaposhnick
2006-06-07 19:47 ` Latchesar Ionkov
2006-06-07 20:00 ` Corey
2006-06-07 20:13 ` Roman Shaposhnick
2006-06-07 20:40 ` Ronald G Minnich
2006-06-08 6:49 ` Roman Shaposhnik
2006-06-07 21:21 ` Christoph Lohmann
2006-06-07 21:49 ` Ronald G Minnich
2006-06-07 22:50 ` Dan Cross
2006-06-08 7:08 cej
2006-06-08 9:18 ` quanstro
2006-06-08 11:58 ` rog
2006-06-09 4:20 ` quanstro
2006-06-08 17:20 ` Corey
2006-06-09 4:00 ` quanstro
2006-06-09 12:40 ` Corey
2006-06-09 13:15 ` quanstro
2006-06-09 15:10 ` Corey
2006-06-09 15:27 ` C H Forsyth
2006-06-09 15:39 ` David Leimbach
2006-06-09 15:37 ` quanstro
2006-06-09 14:52 ` lucio
2006-06-09 18:42 ` quanstro
2006-06-09 21:12 ` David Leimbach
2006-06-10 5:28 ` lucio
2006-06-10 1:36 ` Roman Shaposhnick
2006-06-10 16:32 ` David Leimbach
2006-06-08 7:24 cej
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=4487C6C4.5000500@sun.com \
--to=rvs@sun.com \
--cc=9fans@cse.psu.edu \
/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;
as well as URLs for NNTP newsgroup(s).