public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* gcc cvs (010922) build error on ia64
@ 2001-09-23  7:35 Randolph Chung
  2001-09-23  8:16 ` Andreas Schwab
  0 siblings, 1 reply; 13+ messages in thread
From: Randolph Chung @ 2001-09-23  7:35 UTC (permalink / raw)
  To: gcc; +Cc: doko

While trying to build a recent gcc 3.0.2 snapshot (2001-09-02 cvs) on linux-ia64,
I am seeing the following error:

/usr/src/gcc-3.0-3.0.2ds2/build/gcc/xgcc -B/usr/src/gcc-3.0-3.0.2ds2/build/gcc/ -nostdinc++ -L/usr/src/gcc-3.0-3.0.2ds2/build/ia64-linux/libstdc++-v3/src -L/usr/src/gcc-3.0-3.0.2ds2/build/ia64-linux/libstdc++-v3/src/.libs -B/usr/ia64-linux/bin/ -B/usr/ia64-linux/lib/ -isystem /usr/ia64-linux/include -I../../../../src/libstdc++-v3/../gcc -I../../../../src/libstdc++-v3/../include -I/usr/src/gcc-3.0-3.0.2ds2/build/ia64-linux/libstdc++-v3/include/ia64-linux -I/usr/src/gcc-3.0-3.0.2ds2/build/ia64-linux/libstdc++-v3/include -I../../../../src/libstdc++-v3/libsupc++ -g -O2 -D_GNU_SOURCE -fno-implicit-templates -Wall -Wno-format -W -Wwrite-strings -Winline -fdiagnostics-show-location=once -ffunction-sections -fdata-sections -g -c ../../../../src/libstdc++-v3/libsupc++/eh_exception.cc  -fPIC -DPIC -o eh_exception.o
/tmp/ccuZSgNa.s: Assembler messages:
/tmp/ccuZSgNa.s:352: Error: Unknown opcode `data16.ua @iplt(_ZNSt13bad_exceptionD1Ev#)'
/tmp/ccuZSgNa.s:353: Error: Unknown opcode `data16.ua @iplt(_ZNSt13bad_exceptionD0Ev#)'
/tmp/ccuZSgNa.s:354: Error: Unknown opcode `data16.ua @iplt(_ZNKSt9exception4whatEv#)'
/tmp/ccuZSgNa.s:364: Error: Unknown opcode `data16.ua @iplt(_ZNSt9exceptionD1Ev#)'
/tmp/ccuZSgNa.s:365: Error: Unknown opcode `data16.ua @iplt(_ZNSt9exceptionD0Ev#)'
/tmp/ccuZSgNa.s:366: Error: Unknown opcode `data16.ua @iplt(_ZNKSt9exception4whatEv#)'
make[6]: *** [eh_exception.lo] Error 1
make[6]: Leaving directory `/usr/src/gcc-3.0-3.0.2ds2/build/ia64-linux/libstdc++-v3/libsupc++'

This is built using binutils 2.11.90.0.29 (2001-08-27 cvs). 

Is a newer binutils needed? Or is this a bug?

thanks,
randolph
-- 
   @..@                                         http://www.TauSq.org/
  (----)
 ( >__< )
 ^^ ~~ ^^

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-23  7:35 gcc cvs (010922) build error on ia64 Randolph Chung
@ 2001-09-23  8:16 ` Andreas Schwab
  2001-09-23 23:09   ` Gerald Pfeifer
  0 siblings, 1 reply; 13+ messages in thread
From: Andreas Schwab @ 2001-09-23  8:16 UTC (permalink / raw)
  To: Randolph Chung; +Cc: gcc, doko

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 839 bytes --]

Randolph Chung <randolph@tausq.org> writes:

|> While trying to build a recent gcc 3.0.2 snapshot (2001-09-02 cvs) on linux-ia64,
|> I am seeing the following error:
[...]
|> /tmp/ccuZSgNa.s:366: Error: Unknown opcode `data16.ua @iplt(_ZNKSt9exception4whatEv#)'
|> make[6]: *** [eh_exception.lo] Error 1
|> make[6]: Leaving directory `/usr/src/gcc-3.0-3.0.2ds2/build/ia64-linux/libstdc++-v3/libsupc++'
|> 
|> This is built using binutils 2.11.90.0.29 (2001-08-27 cvs). 
|> 
|> Is a newer binutils needed?

Yes, support for data16.ua and @iplt has been added 2001-09-05.

Andreas.

-- 
Andreas Schwab                                  "And now for something
Andreas.Schwab@suse.de				completely different."
SuSE Labs, SuSE GmbH, Schanzäckerstr. 10, D-90443 Nürnberg
Key fingerprint = 58CA 54C7 6D53 942B 1756  01D3 44D5 214B 8276 4ED5

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-23  8:16 ` Andreas Schwab
@ 2001-09-23 23:09   ` Gerald Pfeifer
  2001-09-24 13:17     ` Jim Wilson
  0 siblings, 1 reply; 13+ messages in thread
From: Gerald Pfeifer @ 2001-09-23 23:09 UTC (permalink / raw)
  To: gcc, Jim Wilson; +Cc: Andreas Schwab, Randolph Chung, doko

On 23 Sep 2001, Andreas Schwab wrote:
>|> Is a newer binutils needed?
> Yes, support for data16.ua and @iplt has been added 2001-09-05.

I just noticed that our platform-specific installation notes in
gcc/doc/install.texi ( http://gcc.gnu.org/install/specific.html )
do not seem to mention ia64 at all.

It would be greate could some of you with experience with this platform
add something (including the requirement stated above).

Thanks,
Gerald
-- 
Gerald "Jerry" pfeifer@dbai.tuwien.ac.at http://www.dbai.tuwien.ac.at/~pfeifer/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-23 23:09   ` Gerald Pfeifer
@ 2001-09-24 13:17     ` Jim Wilson
  2001-09-24 14:24       ` Janis Johnson
  0 siblings, 1 reply; 13+ messages in thread
From: Jim Wilson @ 2001-09-24 13:17 UTC (permalink / raw)
  To: Gerald Pfeifer; +Cc: gcc, wilson

This is likely to get a little complicated because the IA-64 toolchcain is
still not completely finished yet.  Here is a rough draft of most of the
important points that I think need documenting.

ia64-*-linux
Gcc 3.0.2 is not ABI compatible with previous releases, including gcc 3.0.1,
the Trillian 000717 release, and the Red Hat "2.96" release.  This primarily
affects C++ programs, and programs that create shared libraries.  Because of
these ABI incompatibilities, gcc 3.0.2 is not recommended for user programs
on GNU/Linux systems built using earlier compiler releases.  Gcc 3.0.2 is
recommended for compiling linux, the kernel.  Gcc 3.0.2 is believed to be
fully ABI compliant, and hence no more major incompatible ABI changes are
expected.

Gcc 3.0.2 requires a binutils from 2001-09-05 or later.  Gcc 3.0.1 requires
binutils 2.11.1 or later.

Jim

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-24 13:17     ` Jim Wilson
@ 2001-09-24 14:24       ` Janis Johnson
  2001-09-24 16:28         ` Jim Wilson
                           ` (2 more replies)
  0 siblings, 3 replies; 13+ messages in thread
From: Janis Johnson @ 2001-09-24 14:24 UTC (permalink / raw)
  To: Jim Wilson; +Cc: Gerald Pfeifer, gcc, wilson

On Mon, Sep 24, 2001 at 01:17:20PM -0700, Jim Wilson wrote:
> This is likely to get a little complicated because the IA-64 toolchcain is
> still not completely finished yet.  Here is a rough draft of most of the
> important points that I think need documenting.
> 
> ia64-*-linux
> Gcc 3.0.2 is not ABI compatible with previous releases, including gcc 3.0.1,
> the Trillian 000717 release, and the Red Hat "2.96" release.  This primarily
> affects C++ programs, and programs that create shared libraries.  Because of
> these ABI incompatibilities, gcc 3.0.2 is not recommended for user programs
> on GNU/Linux systems built using earlier compiler releases.  Gcc 3.0.2 is
> recommended for compiling linux, the kernel.  Gcc 3.0.2 is believed to be
> fully ABI compliant, and hence no more major incompatible ABI changes are
> expected.
> 
> Gcc 3.0.2 requires a binutils from 2001-09-05 or later.  Gcc 3.0.1 requires
> binutils 2.11.1 or later.

Thanks, Jim.  I turned your comments into a patch and added the glibc
requirement.  I also clarified (I hope) the ABI incompatibility issue,
since no IA-64 release so far is compatible with any other release.

Janis

2001-09-24  Jim Wilson  <wilson@redhat.com>

	* doc/install.texi (Specific, ia64-*-linux): Document.

Index: install.texi
===================================================================
RCS file: /cvs/gcc/gcc/gcc/doc/install.texi,v
retrieving revision 1.67
diff -u -r1.67 install.texi
--- install.texi	2001/09/24 17:29:37	1.67
+++ install.texi	2001/09/24 21:07:10
@@ -1353,6 +1353,8 @@
 @item
 @uref{#i860-intel-osf*,,i860-intel-osf*}
 @item
+@uref{#ia64-*-linux,,ia64-*-linux}
+@item
 @uref{#*-lynx-lynxos,,*-lynx-lynxos}
 @item
 @uref{#*-ibm-aix*,,*-ibm-aix*}
@@ -2219,6 +2221,30 @@
 @end example
 
 These problems don't exist in operating system version 1.1.
+
+@html
+</p>
+<hr>
+@end html
+@heading @anchor{ia64-*-linux}ia64-*-linux
+IA-64 processor (also known as IPF, or Itanium Processor Family)
+running GNU/Linux.
+
+The toolchain is not completely finished, so requirements will continue
+to change.
+GCC 3.0.1 and later require glibc 2.2.4.
+GCC 3.0.2 requires binutils from 2001-09-05 or later.
+GCC 3.0.1 requires binutils 2.11.1 or later.
+
+None of the following versions of GCC has an ABI that is compatible
+with any of the other versions in this list:
+3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717.
+This primarily affects C++ programs and programs that create shared libraries.
+Because of these ABI incompatibilities, GCC 3.0.2 is not recommended for
+user programs on GNU/Linux systems built using earlier compiler releases.
+GCC 3.0.2 is recommended for compiling linux, the kernel.
+GCC 3.0.2 is believed to be fully ABI compliant, and hence no more major
+ABI changes are expected.
 
 @html
 </p>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-24 14:24       ` Janis Johnson
@ 2001-09-24 16:28         ` Jim Wilson
  2001-09-25  1:52         ` Jakub Jelinek
  2001-09-25  6:50         ` Gerald Pfeifer
  2 siblings, 0 replies; 13+ messages in thread
From: Jim Wilson @ 2001-09-24 16:28 UTC (permalink / raw)
  To: Janis Johnson; +Cc: Gerald Pfeifer, gcc

This looks reasonable to me.  The addition of glibc info is good; I didn't
have it handy.

Jim

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-24 14:24       ` Janis Johnson
  2001-09-24 16:28         ` Jim Wilson
@ 2001-09-25  1:52         ` Jakub Jelinek
  2001-09-25 11:36           ` Jim Wilson
  2001-09-25  6:50         ` Gerald Pfeifer
  2 siblings, 1 reply; 13+ messages in thread
From: Jakub Jelinek @ 2001-09-25  1:52 UTC (permalink / raw)
  To: Janis Johnson; +Cc: Jim Wilson, Gerald Pfeifer, gcc

On Mon, Sep 24, 2001 at 02:26:45PM -0700, Janis Johnson wrote:
> +None of the following versions of GCC has an ABI that is compatible
> +with any of the other versions in this list:
> +3.0.2, 3.0.1, 3.0, Red Hat 2.96, and Trillian 000717.

This is not entirely correct, I believe 2.96-RH is ABI compatible with
Trillian 000717 (2.96-RH/ia64 has the ia64 backend almost identical to
Trillian 000717, with a few bugfixes, plus the CVS snapshot the two
compilers are based on is very close (000717 and 000731), the patches which
were applied on top of 000731 do not change ABI).

Also, aren't 3.0/ia64 and 3.0.1/ia64 binary compatible too (no idea, just
wondering)?

	Jakub

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-24 14:24       ` Janis Johnson
  2001-09-24 16:28         ` Jim Wilson
  2001-09-25  1:52         ` Jakub Jelinek
@ 2001-09-25  6:50         ` Gerald Pfeifer
  2001-09-25 11:27           ` Janis Johnson
  2 siblings, 1 reply; 13+ messages in thread
From: Gerald Pfeifer @ 2001-09-25  6:50 UTC (permalink / raw)
  To: Janis Johnson; +Cc: Jim Wilson, gcc

On Mon, 24 Sep 2001, Janis Johnson wrote:
> 2001-09-24  Jim Wilson  <wilson@redhat.com>
>
> 	* doc/install.texi (Specific, ia64-*-linux): Document.

Please add your name here and commit this to both branches (with the
minor change pointed out on the list).

Jim, thanks for the info.

Janis, you beat me to converting this to texinfo -- thanks a lot! ;-)

Gerald
-- 
Gerald "Jerry" pfeifer@dbai.tuwien.ac.at http://www.dbai.tuwien.ac.at/~pfeifer/

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-25  6:50         ` Gerald Pfeifer
@ 2001-09-25 11:27           ` Janis Johnson
  0 siblings, 0 replies; 13+ messages in thread
From: Janis Johnson @ 2001-09-25 11:27 UTC (permalink / raw)
  To: Gerald Pfeifer; +Cc: Janis Johnson, Jim Wilson, gcc

On Tue, Sep 25, 2001 at 03:49:42PM +0200, Gerald Pfeifer wrote:
> On Mon, 24 Sep 2001, Janis Johnson wrote:
> > 2001-09-24  Jim Wilson  <wilson@redhat.com>
> >
> > 	* doc/install.texi (Specific, ia64-*-linux): Document.
> 
> Please add your name here and commit this to both branches (with the
> minor change pointed out on the list).
> 
> Jim, thanks for the info.

OK, but I'll wait for word from Jim about the compatibility issues.
It sounds like the Trillian release and Red Hat 2.96 are compatible;
are there incompatibilities on ia64 between 3.0 and 3.0.1?

Janis

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-25  1:52         ` Jakub Jelinek
@ 2001-09-25 11:36           ` Jim Wilson
  2001-09-25 11:42             ` David Edelsohn
  0 siblings, 1 reply; 13+ messages in thread
From: Jim Wilson @ 2001-09-25 11:36 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Janis Johnson, Gerald Pfeifer, gcc

>This is not entirely correct, I believe 2.96-RH is ABI compatible with
>Trillian 000717

Yes, I would expect them to be ABI compatible, but I've never tried to
verify it.  If they aren't ABI compatible, no one is going to fix it.
So documenting them as incompatible seems reasonable.

>Also, aren't 3.0/ia64 and 3.0.1/ia64 binary compatible too (no idea, just
>wondering)?

3.0 has ia64_app_header, 3.0.1 does not.  Thus you can get undefined
references to ia64_app_header if you mix them.  I think the failure case
would be building a shared library with 3.0 that imports functions from
libgcc, and then linking it into a 3.0.1 compiled application.

Jim

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-25 11:36           ` Jim Wilson
@ 2001-09-25 11:42             ` David Edelsohn
  2001-09-25 12:45               ` Jakub Jelinek
  2001-09-25 13:24               ` Jim Wilson
  0 siblings, 2 replies; 13+ messages in thread
From: David Edelsohn @ 2001-09-25 11:42 UTC (permalink / raw)
  To: Jim Wilson; +Cc: Jakub Jelinek, Janis Johnson, Gerald Pfeifer, gcc

	GCC 3.0.2 and the trunk now define TARGET_VTABLE_USES_DESCRIPTORS
on IA-64.  Is that an incompatible change?

	On a related note, should all targets with function descriptors
(e.g., AIX and 64-bit PowerPC Linux) use that macro as well?

Thanks, David

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-25 11:42             ` David Edelsohn
@ 2001-09-25 12:45               ` Jakub Jelinek
  2001-09-25 13:24               ` Jim Wilson
  1 sibling, 0 replies; 13+ messages in thread
From: Jakub Jelinek @ 2001-09-25 12:45 UTC (permalink / raw)
  To: David Edelsohn; +Cc: Jim Wilson, Janis Johnson, Gerald Pfeifer, gcc

On Tue, Sep 25, 2001 at 02:42:27PM -0400, David Edelsohn wrote:
> 	GCC 3.0.2 and the trunk now define TARGET_VTABLE_USES_DESCRIPTORS
> on IA-64.  Is that an incompatible change?

Sure. Before that change gcc/IA-64 did not follow IA-64 ABI.

> 	On a related note, should all targets with function descriptors
> (e.g., AIX and 64-bit PowerPC Linux) use that macro as well?

Only if the respective ABIs require it.

	Jakub

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: gcc cvs (010922) build error on ia64
  2001-09-25 11:42             ` David Edelsohn
  2001-09-25 12:45               ` Jakub Jelinek
@ 2001-09-25 13:24               ` Jim Wilson
  1 sibling, 0 replies; 13+ messages in thread
From: Jim Wilson @ 2001-09-25 13:24 UTC (permalink / raw)
  To: David Edelsohn; +Cc: gcc

>	GCC 3.0.2 and the trunk now define TARGET_VTABLE_USES_DESCRIPTORS
>on IA-64.  Is that an incompatible change?

Yes.  C++ vtables before and after the change are not compatible.  This
is why IA-64 gcc 3.0.2 is not compatible with IA-64 gcc 3.0.1.  This was
necessary for ABI compliance.

>	On a related note, should all targets with function descriptors
>(e.g., AIX and 64-bit PowerPC Linux) use that macro as well?

I think this would have to be investigated on an individual basis.  For
IA-64, putting the function descriptor in the vtable removes one branch
from the execution path, but it makes vtables bigger, and requires special
relocations and special assembler syntax for the vtables, and it also
apparently causes other problems.  Richard commented on this briefly in one
of his messages when asked about java.

Bryce McKinlay...
Do we need to handle storing function descriptors in the interface
tables for IA64?

Richard Henderson...
Nope.  In fact the only real reason to do it for vtables
is that someone decided that it was a good idea for c++.
Better would have been a scheme that didn't require any
dynamic relocations, or at least one that could use lazy
binding, but...

There is also the fact that this is an ABI change, which would be a problem
for established systems.  IA-64 is still new enough that we can get ABI
changes in, though we expect that this is the last one that we will need.

Jim

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2001-09-25 13:24 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-09-23  7:35 gcc cvs (010922) build error on ia64 Randolph Chung
2001-09-23  8:16 ` Andreas Schwab
2001-09-23 23:09   ` Gerald Pfeifer
2001-09-24 13:17     ` Jim Wilson
2001-09-24 14:24       ` Janis Johnson
2001-09-24 16:28         ` Jim Wilson
2001-09-25  1:52         ` Jakub Jelinek
2001-09-25 11:36           ` Jim Wilson
2001-09-25 11:42             ` David Edelsohn
2001-09-25 12:45               ` Jakub Jelinek
2001-09-25 13:24               ` Jim Wilson
2001-09-25  6:50         ` Gerald Pfeifer
2001-09-25 11:27           ` Janis Johnson

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 read-only IMAP folder(s) and NNTP newsgroup(s).