Submitted On 18-JUN-2002
xlat123
same here.... trying to work a near-to-standard-compliant
c++ compiler ( gcc3.1 ) ,and i can't use the java sdk... so
why don't offer a gcc3.1-friendly version? it shouldn't be
so hard to recompile..
Submitted On 18-JUN-2002
cosmicflo26
please do a new Java SDK, we need it !
Submitted On 18-JUN-2002
JohnMunsch
This is a show stopper bug for us in our transition of all
our developer machines from Windows to Linux. I've been due
to get a new machine for two weeks and was informed today
that I could not have a machine because the Linux we use
(the very latest Mandrake) had libraries which were
incompatible with Java and thus I had to stay put on Windows.
Now, neither you nor I want me to be stuck on a Microsoft
product do you?
Submitted On 18-JUN-2002
breser
Yes please do provide a java runtime built with gcc 3.1 and it's libstdc++.
Submitted On 18-JUN-2002
bfe369
The workaround of copying an older libstdc++ does NOT work
on any of 10+ Linux machines at my company. This issue is
killing us. We can't run a current Linux version because Sun
is dragging their feet on a recompile, of all things. Since
Java development is our job, this is putting us between a
rock and a hard place. Going forward, we're also in a bad
place, since all of the major distributions we deal with are
converting to gcc3.1, including Mandrake, SuSE, Caldera,
TurboLinux, and so forth.
Please, all we're asking for is a recompile, with a little
bit of patching to make it compile against gcc3.1 and
libstdc++.so.4.
Submitted On 18-JUN-2002
roger-linux
Please provide code that works with GCC-3.1
From mailling list info, many linux distro's are now using
gcc-3.1, and if they are not now, they apperantly will be
within a short time!
Submitted On 19-JUN-2002
dwojtas
We use Linux a lot as our platform, and I am afraid we may
find this problematical soon.
Please correct that!
Submitted On 19-JUN-2002
maciunas
Further to all the existing comments, whacking in a 2.x
libstdc++ is not all that feasible for everyone. Doing that
requires some considerable care, non experts will simply be
unable to do it and hence unable to run Java. Compiling for
a 3.1 target has not been an issue for any of the software
I've just finished rebuilding. Come on Sun, quit stuffing
around!
Submitted On 20-JUN-2002
tonyj
This is a big problem if you are using JNI to link to other
C++ applications. You cannot mix C++ compiled with gcc 2
and gcc 3 in the same application, so if you have a library
compiled with gcc 3 it is not possible to use if via JNI
from Java.
Submitted On 20-JUN-2002
huanghui1
Thanks very much for the comments here and on JavaLobby.
Just want to let you know that we are well aware of the
compatibility issues surrounding different gcc versions.
The problem is that the C++ ABI keeps changing between
different versions of gcc. If we move to use gcc-3.1 to
build JDK (in fact, 1.4.1 source has been cleaned for the
new gcc), it will not work with many existing applications
(e.g. plugin will not work on mozilla). That would be
unacceptable to many other folks who still rely on the old
system.
That being said, we are surely trying to find a release as
the candidate for the transition to gcc-3.x. It would depend
on how fast the community is switching to gcc-3.x. Right
now, we are looking at 1.4.2 being the transition release.
If you feel strongly 1.4.1 should be the one (btw, 1.4.1
beta is just released today), please share your thoughts
here. We'd love to hear.
Just a note on statically linking libstdc++. Yes, that will
solve the dependence on libstdc++-libc6.1-1.so.2, and we
are doing this for 1.4.1. But keep in mind that could
cause other problems, as you might end up having two
incompatible C++ runtime in the memory. That isn't healthy.
Again, thanks for all the comments and suggestions.
Submitted On 20-JUN-2002
MartinG1
This is a major problem for us also.
I don't see why sun do not release the source under a more
open license. What have they got to lose? It would
certainly reaffirm java as a more attractive development
option than .NET.
Submitted On 20-JUN-2002
marksmithurbana
This is huge for my company. We made the mistake of moving
to jdk 1.4 and now we're stuck with it. Unfortunately
we're also stuck with Windows due to this bug. Hopefully
IBM's jdk1.4 will come out soon and save us...
Submitted On 20-JUN-2002
David Silver
Linking against the older libraries is NOT unreasonable on
Sun's part. For a SIGNIFICANT PORTION of the situations
where you deploy Java on Linux, namely webapps (Servlets,
JSP), you want to securely lock down the host. That usually
means running an older kernel version, with all the patches
applied, and consequently, an older distro with older libraries.
As pointed out in discussions on www.javalobby.org, it IS
possible to install the older libraries. On the other hand,
it is also possible for Sun to statically link the JVM and
avoid the problem, as they do at Blackdown, for some cost in
download size.
Submitted On 22-JUN-2002
_2Mike
Check out hints.linuxfromscratch.org
They have a hint (Java from scratch) on how to build the
JDK from the source so it works on your gcc 3.x system.
Submitted On 30-JUN-2002
matthewbk
huanghui1,
Thanks for your response. This bug is causing problems for
the Gentoo Linux distribution. Many Gentoo users are already
using gcc3.1 profiles. They experience this bug first hand.
Typically it manifests as Java applets failing to load even
though the user believes the plugin was installed properly.
Not a good show for Java in general.
I'd like to see a gcc3.1 build as soon as possible -- in
1.4.1 would be perfect. If it's a big deal, I don't see why
builds for both gcc2.95.3 AND gcc3.1 can't be made available.
Submitted On 03-JUL-2002
somazero
Please make 1.4.1 the release that supports gcc3.x. It is
desperately needed and will also help with the transition.
Please don't wait for the transition to happen first, you
will just cause it to take longer. Thank you for all the
work you've done so far...
Submitted On 08-JUL-2002
dweigert
Just add me to the list... OpenOffice doesn't work because it
depends on Java. Gentoo Linux 1.3 is *Fast* and I hope to
ditch MS altogether...
Submitted On 12-JUL-2002
_2Mike
Ahem. Why use binaries with a source distribution when you
can compile your own?
http://hints.linuxfromscratch.org/hints/javafromscratch.txt
Of course, you're going to have to borrow a
libstdc++-libc6.1-1.so.2 to bootstrap it, but it's worth the
effort.
Submitted On 14-JUL-2002
matthewbk
_2Mike, That's not really an option. The licensing
conditions for that from source Java are so restrictive, it
prevents you from working on certain free software java
projects (such as gnu classpath, kaffe, openjit etc.). Plus
there are other restrictions on it's use. That's why this
bug is so important -- there are no work arounds.
Submitted On 23-JUL-2002
matthewbk
aside from your assumption on what freedoms a user is
willing to give up when building from scratch, you miss the
point entirely. it is a difference between the c++ abi in
gcc 2.95.x (which was used to compile sun-jdk-1.4.0_01) and
the c++ abi in gcc 3.1 which is the problem. as a result the
java plug in and any other c++-based jni application (afaik)
will not run. email me direct if you're still unclear (i
don't wish to turn a bug into a debate)
Submitted On 23-JUL-2002
_2Mike
That restrictive? I doubt it. Besides, are you going to be
working on clean-room java clones? If you are, it may be a
problem. I'm not a lawyer. Chances are, most people aren't
working on java clones. The big problem with licensing is just
that you can't distribute your binaries, but no one says you
can't use them. This compile-from-source solution is just fine
for those gentoo users looking to run jEdit 4.0.x, or any other
Java 1.4 program. I didn't say it's the solution to your
multi-million dollar project. If you happen to have one of them
(good luck!), just distribute
libstdc++-libc6.1-1.so.2 with the product until statically
linked binaries are available.
Submitted On 25-JUL-2002
_2Mike
Hmm.. I think I misinterpreted your comments as applying to
the made-from-source java. If you are talking about the
binaries + old libstdc, yes, the java plugin won't work. At
least, not without a workaround found at
http://hints.linuxfromscratch.org/hints/mozilla.txt or
http://bugzilla.mozilla.org/show_bug.cgi?id=124006 . People
will probably want this workaround anyway so they can have
their flash plugin. JNI will probably still need recompiling,
although I suspect the workaround used for mozilla *might*
work. (probably not)
Submitted On 25-JUL-2002
_2Mike
I'm fairly sure I can't email you without an email address, so
I'll respond here.
A source compile _includes_ the java plugin, so it will work,
provided you compiled your browser with the proper gcc too.
Also, if you're willing to compile the jdk, there should be less
of a problem recompiling a program that uses the JNI. After
all, if the program used the old ABI, it can't run at all on your
system, much less with JNI.
I'm curious. What am I missing about the rights taken away
when agreeing to the license?
Submitted On 31-JUL-2002
hubick
What I don't understand is why there needs to be a
transition at all. The consumers of Java are developers,
and as such, should be capable of choosing between
/multiple/ builds, finding the one which is applicable to
their platform/compiler.
I think JDK point releases should really be /somewhat/
independent of compiler releases - if a new compiler comes
out such as GCC 3, why not at least release an "unstable,
untested, developer" build for that compiler?
That said, the current stable release, GCC 3.1.1, has known
ABI bugs causing generated binaries not to comply with the
multi-vendor ABI standard. The GCC folks are patching ONLY
these few bugs for the next stable release, which, since
they are changing binary compatibility, will be called GCC
3.2 - whose release is scheduled immediately.
Building with 3.1.1 doesn't make any sense, in that binary
compatibility will break again immediately with 3.2. And
with 3.2 we will hopefully be ensured compatibility for a
long time to come. And 3.2 is basically just 3.1.1 with
ABI, and 3.1.1 probably wouldn't have even been released if
it wasnt for Apple wanting it for Jaguar.
So, yeah, I vote for a 2.95 AND 3.2 release of Java 4.1.
Submitted On 19-AUG-2002
goaway
gcc 3.2 was officially released on August 14.
The 2.95 -> 3.0x -> 3.1x -> 3.2 C++ ABI transitions were
painful, but 3.2 is supposed to be the stable ABI for a
while. Linux will make the final transition from gcc 2.95
to 3.2 *quickly* to break out of this ugly transition period
and stabilize on the new ABI.
(Back in the gcc 3.0 beta days RedHat caught a lot of flack
for adopting the new compiler too quickly. This time SuSE
and Mandrake are already out in front of RedHat, so when
RedHat 8.0 is released with gcc 3.2, most of the commercial
Linux market will be there. Java needs to be ready. Note
that the "Limbo" RedHat 8.0 beta is already available, so
this is absolutely happening in the j2sdk 1.4.1 timeframe.
You cannot safely put it off to 1.4.2.)
Recommendations:
1. Be absolutely certain that the same j2sdk 1.4.1 source
code compiles cleanly under all gcc versions from 2.95 to
3.2. If necessary, #ifdefs are way better than patches.
(Patches are necessary to compile the j2sdk 1.4.0 code under
gcc 3.2.)
2. Compile j2sdk 1.4.1 statically to insulate from
underlying shared library issues. This is especially key
for the Java Plug-In and JRE, which need to be run by less
technical people. Granted, this will bloat the download
size, but better a bigger download that works for everyone
than a smaller one that doesn't. (BTW if you want to reduce
the bloat, switch from gzip to bzip2 for the tarball
packages at the same time. bzip2 support is now universal
in Linux so this is a no-brainer, not a risk.)
By the j2sdk 1.4.2 release date, gcc 3.2 should be
widespread enough to go back to dynamic compilation and
smaller downloads. But during this transition period I
think it's too dangerous. Your choices are static
compilation or multiple versions. Choosing to ignore the
issue and only support outdated gcc versions will cause a
lot of needless flack to be thrown at Sun from the Linux
community. (This is the tip of the iceberg -- once RedHat
8.0 is released, anything that doesn't support gcc 3.2 will
appear antediluvian.)
Submitted On 27-AUG-2002
codeguru
My work-around for this problem was to create a symlink to
libstdc++.so.4.0.0 called libstdc++-libc6.1-1.so.2 and re-run
the RPM.
Submitted On 06-SEP-2002
mtdean
I agree with the latest posts requesting a 1.4.1 release for
GCC 2.95.x and GCC 3.2. Releasing a GCC 3.0, GCC 3.1, or
GCC 3.1.1 version should not be necessary as these are all
different ABI's and are already outdated. Furthermore,
since the 3.2 ABI should remain stable, the transition will
need to occur eventually. (I for one am ready to move
beyond GCC 2.95.3.)
If Sun only provides two versions, users should not be
overly frightened--especially if explicit instructions for
determining GCC version are provided (i.e. "Type 'gcc
--version' into a shell"). I would even be appeased if the
GCC 3.2 compatible version were "hidden" on the web site
such that most users just download the GCC 2.95.x compatible
version.
Submitted On 11-SEP-2002
rickst29
huanghui1,
Thanks for asking! The Mozilla maintainer for Mandrake would
have STRONGLY preferred to compile Mozilla (and Enigmail)
with GCC 3.x for the upcoming Mandrake 9.0 release. Mozilla
Source code, unlike the JDK/JRE source, is GPL. Mandrake
(and anyone else) is therefore free to create and DISTRIBUTE
2.x or 3.x binaries. Nearly everything else in Mandrake 9.9
is compiled with GCC 3.x. The Sun JDK/JRE license does not
allow for such a redistribution (you may compile only for
private use). The problem is here, not with Mozilla. I
strongly agree (with mtdean) that any Linux person is
capable of choosing the correct JDK/JRE Linux binary with a
couple of hints. It's only slightly harder than choosing
between the 'Linux' and 'Solaris' downloads. Please provide
alternate versions for GCC 2.95 and GCC 3.x (latest
production/stable version).
Submitted On 25-SEP-2002
valadil
Yeah. What Galdor said.
Submitted On 25-SEP-2002
galdor
This really needs to be fixed. I can't write my programming
assignments for class because of this. I'm using gcc 3.2.
Submitted On 07-OCT-2002
noselasd
Remember that all sane distros will ship compat libraries
that has this libstdc++ version. If not, yell loudly at your
distro makers.
Secondly gcc 3.1 and libstdc++ v 4 should not be considered,
its old.
gcc 3.2 comes with v5.0, and although it almost promised to
keep the ABI, several flaws have been found. What they will
do in gcc 3.3 noone knows yet.
Submitted On 17-OCT-2002
rellehr
I have code that runs ok on Windows. I compiled it on
RedHat Linux 7.2 using gcc-2.96 and the VM aborts when an
exception is thrown in JNI. I compiled with gcc-2.95-3 and
I get a segmentation fault instead of an abort. Do I need
to go back to JDK 1.3.1? Do I need to use a different
compiler? What combination of compiler/library/whatnot is
known to work on Linux?
Submitted On 20-OCT-2002
mgbolusm
This is a real upset, and puts a lot of people into a sticky
situation, including myself.
Well, untill Java works again I'll just grab Mono and learn
.net.
Submitted On 24-OCT-2002
tannhaus
This is a HUGE problem. I'm running Redhat 8.0 and can't
view java applets because redhat uses gcc 3.2. So, right
now I'm steering clear of java software. Considering the
market share Redhat has, I'd say this is a major problem for
Sun. Most windows users are NOT going to install sun
java...they will install Microsoft's java vm...and this is
probably a big jab at the heart of the community that will
actually install java and develop using it.
Submitted On 01-NOV-2002
sagertobias
vote for 1.4.1 (aka as soon as possible)
Submitted On 08-NOV-2002
avaspell
After SuSE 8.1 and RedHat 8.0 were released, a lot of the
management consoles that are web-based refused to work
on our systems due to the gcc problem. However, wether
Sun releases a statically linked binary or different release
really depends on whether they want to support 2 versions
for Linux, or have a bigger download. It doesn't matter for
me either way, but I hate using RDesktop to get to Java
Applet pages for management of ciritical functions a my
company.
Submitted On 11-NOV-2002
huanghui1
Here are what we plan to do to solve the libstdc++ problem:
1. statically link libstdc++ (4706607), remove dependency on
libstdc++-libc6.1-1.so.2
2. limit dynamic symbols (4776723), avoid symbol conflicts
between the libstdc++ linked with VM and the (potentially
different version) libstdc++ linked with JNI library.
Submitted On 21-NOV-2002
esquille
There is also another problem related to the different
versions of GCC,
and that is the mangled names of virtual classes.
For example the class nsGetServiceByCID is mangled
__vt_17nsGetServiceByCID by GCC 2.x but _ZTV17nsGetServiceByCID
by GCC 3.x.
This makes it impossible to use the java plugin
libjavaplugin_oji.so
in a Mozilla compiled with GCC 3.2 since the plugin is
compiled with
GCC 2.x.
This leaves all our students (+2000) without a functional
JVM for
their webbrowser. (We also have Netscape Communicator 4.8, but
that one keeps on craching)
Submitted On 26-NOV-2002
ismaild
Slackware 9.0 will be built using gcc 3.2.1 too
Submitted On 26-NOV-2002
huanghui1
TO esquille:
The Java plugin code has already been changed for the
upcoming 1.4.2 - it no longer needs mangled C++ symbols.
Submitted On 07-JAN-2003
yanestra
Every system that makes use of the newer gcc produces
problems with the old-style linked JDK.
JDK (that means: Sun) seems to block all newer OS developments.
Submitted On 04-FEB-2003
rickst29
Sep, Oct, Nov, Dec, Jan, Feb. This bug is now in 4th place
on the voting list. Sun should release alternate Linux 1.4.1
JDK/JRE versions for use in systems which are built entirely
with gcc-3.2.
This bug shows no status change since November 27.
Developers are not going to abandon GCC and GNU/Linux. If
you don't resolve this problem, many of us will abandon the
Sun JDK and JRE instead.
Submitted On 19-FEB-2003
21mhz
FYI: the Blackdown project has recently released the 1.4.1
JDK build for Linux, using libstdc++.so.5 as comes with GCC
3.2. You can download it at
http://www.blackdown.org/java-linux.html
Works like a charm for me.
Hopefully Sun will follow soon.
Submitted On 18-MAR-2003
mgbolusm
On the 1.4.1_02 download site
http://java.sun.com/j2se/1.4.1/download.html
Installation Notes/Linux, you say
"This version of the JavaTM 2 Runtime Environment (Java RE)
is supported on Intel Pentium platforms running the Linux
kernel v 2.2.12 and glibc v2.1.2-11 or later."
So have you fixed it? Then why is this bug "In progrss"? If
you haven't fixed it, why are you still lying about
requirements?
Submitted On 19-MAR-2003
huanghui1
The bug is still "in progress" because there have been
issues with
Java plugin (4687814). This bug is supposed to track gcc
compatibility
issues, I won't close this one until 4687814 is fixed, which
should happen
in 1.4.2-beta.
Submitted On 29-MAR-2003
DonKamio
OK, 4687814 is now marked as being "Closed, fixed".
Release Fixed mantis-beta, tiger
PLEASE NOTE: JDK6 is formerly known as Project Mustang
|