Re: Do the current gcc 3.4 and glibc 2.3 in CVS work on ia64?

classic Classic list List threaded Threaded
9 messages Options
Reply | Threaded
Open this post in threaded view
|

Re: Do the current gcc 3.4 and glibc 2.3 in CVS work on ia64?

H.J. Lu-27
On Fri, Jan 06, 2006 at 10:08:29AM -0800, H. J. Lu wrote:

> With the current gcc 3.4 and glibc 2.3 in CVS, I got
>
> [hjl@gnu-12 glibc-2.3-import-3.4]$ gdb
> ./build-ia64-linux/elf/ld-linux-ia64.so.2GNU gdb Red Hat Linux
> (6.3.0.0-1.62rh)
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and
> you are
> welcome to change it and/or distribute copies of it under certain
> conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for
> details.
> This GDB was configured as "ia64-redhat-linux-gnu"...Using host
> libthread_db library "/lib/tls/libthread_db.so.1".
>
> (gdb) r
> Starting program:
> /export/build/gnu/glibc-2.3-import-3.4/build-ia64-linux/elf/ld-linux-ia64.so.2
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x2000000000002f91 in _dl_start (arg=0x60000fffffff98a0) at rtld.c:260
> 260           HP_TIMING_DIFF_INIT ();
> (gdb)
>

It looks like a binutils issue. I am investigating it now.


H.J.

Reply | Threaded
Open this post in threaded view
|

Re: Do the current gcc 3.4 and glibc 2.3 in CVS work on ia64?

H.J. Lu-27
On Fri, Jan 06, 2006 at 10:59:18AM -0800, H. J. Lu wrote:

> On Fri, Jan 06, 2006 at 10:08:29AM -0800, H. J. Lu wrote:
> > With the current gcc 3.4 and glibc 2.3 in CVS, I got
> >
> > [hjl@gnu-12 glibc-2.3-import-3.4]$ gdb
> > ./build-ia64-linux/elf/ld-linux-ia64.so.2GNU gdb Red Hat Linux
> > (6.3.0.0-1.62rh)
> > Copyright 2004 Free Software Foundation, Inc.
> > GDB is free software, covered by the GNU General Public License, and
> > you are
> > welcome to change it and/or distribute copies of it under certain
> > conditions.
> > Type "show copying" to see the conditions.
> > There is absolutely no warranty for GDB.  Type "show warranty" for
> > details.
> > This GDB was configured as "ia64-redhat-linux-gnu"...Using host
> > libthread_db library "/lib/tls/libthread_db.so.1".
> >
> > (gdb) r
> > Starting program:
> > /export/build/gnu/glibc-2.3-import-3.4/build-ia64-linux/elf/ld-linux-ia64.so.2
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x2000000000002f91 in _dl_start (arg=0x60000fffffff98a0) at rtld.c:260
> > 260           HP_TIMING_DIFF_INIT ();
> > (gdb)
> >
>
> It looks like a binutils issue. I am investigating it now.
>

I have identified that

http://sourceware.org/ml/binutils/2005-12/msg00001.html

breaks building glibc 2.3 in CVS with gcc 3.4 in CVS. Jan, could you
please look into it?

Thanks.


H.J.

Reply | Threaded
Open this post in threaded view
|

IA64 assembler is broken

H.J. Lu-27
On Fri, Jan 06, 2006 at 11:35:20AM -0800, H. J. Lu wrote:

> On Fri, Jan 06, 2006 at 10:59:18AM -0800, H. J. Lu wrote:
> > On Fri, Jan 06, 2006 at 10:08:29AM -0800, H. J. Lu wrote:
> > > With the current gcc 3.4 and glibc 2.3 in CVS, I got
> > >
> > > [hjl@gnu-12 glibc-2.3-import-3.4]$ gdb
> > > ./build-ia64-linux/elf/ld-linux-ia64.so.2GNU gdb Red Hat Linux
> > > (6.3.0.0-1.62rh)
> > > Copyright 2004 Free Software Foundation, Inc.
> > > GDB is free software, covered by the GNU General Public License, and
> > > you are
> > > welcome to change it and/or distribute copies of it under certain
> > > conditions.
> > > Type "show copying" to see the conditions.
> > > There is absolutely no warranty for GDB.  Type "show warranty" for
> > > details.
> > > This GDB was configured as "ia64-redhat-linux-gnu"...Using host
> > > libthread_db library "/lib/tls/libthread_db.so.1".
> > >
> > > (gdb) r
> > > Starting program:
> > > /export/build/gnu/glibc-2.3-import-3.4/build-ia64-linux/elf/ld-linux-ia64.so.2
> > >
> > > Program received signal SIGSEGV, Segmentation fault.
> > > 0x2000000000002f91 in _dl_start (arg=0x60000fffffff98a0) at rtld.c:260
> > > 260           HP_TIMING_DIFF_INIT ();
> > > (gdb)
> > >
> >
> > It looks like a binutils issue. I am investigating it now.
> >
>
> I have identified that
>
> http://sourceware.org/ml/binutils/2005-12/msg00001.html
>
> breaks building glibc 2.3 in CVS with gcc 3.4 in CVS. Jan, could you
> please look into it?

I opened a bug report:

http://sources.redhat.com/bugzilla/show_bug.cgi?id=2117

I will revert the change if it isn't fixed by next Monday.


H.J.

Reply | Threaded
Open this post in threaded view
|

Re: IA64 assembler is broken

DJ Delorie-2

> I will revert the change if it isn't fixed by next Monday.

Tuesday minimum.  Not everyone works on the weekends, and today is
already over for half the planet.

Although a week would be better.

Reply | Threaded
Open this post in threaded view
|

Re: IA64 assembler is broken

H.J. Lu-27
In reply to this post by H.J. Lu-27
On Fri, Jan 06, 2006 at 12:01:09PM -0800, H. J. Lu wrote:

> On Fri, Jan 06, 2006 at 11:35:20AM -0800, H. J. Lu wrote:
> > On Fri, Jan 06, 2006 at 10:59:18AM -0800, H. J. Lu wrote:
> > > On Fri, Jan 06, 2006 at 10:08:29AM -0800, H. J. Lu wrote:
> > > > With the current gcc 3.4 and glibc 2.3 in CVS, I got
> > > >
> > > > [hjl@gnu-12 glibc-2.3-import-3.4]$ gdb
> > > > ./build-ia64-linux/elf/ld-linux-ia64.so.2GNU gdb Red Hat Linux
> > > > (6.3.0.0-1.62rh)
> > > > Copyright 2004 Free Software Foundation, Inc.
> > > > GDB is free software, covered by the GNU General Public License, and
> > > > you are
> > > > welcome to change it and/or distribute copies of it under certain
> > > > conditions.
> > > > Type "show copying" to see the conditions.
> > > > There is absolutely no warranty for GDB.  Type "show warranty" for
> > > > details.
> > > > This GDB was configured as "ia64-redhat-linux-gnu"...Using host
> > > > libthread_db library "/lib/tls/libthread_db.so.1".
> > > >
> > > > (gdb) r
> > > > Starting program:
> > > > /export/build/gnu/glibc-2.3-import-3.4/build-ia64-linux/elf/ld-linux-ia64.so.2
> > > >
> > > > Program received signal SIGSEGV, Segmentation fault.
> > > > 0x2000000000002f91 in _dl_start (arg=0x60000fffffff98a0) at rtld.c:260
> > > > 260           HP_TIMING_DIFF_INIT ();
> > > > (gdb)
> > > >
> > >
> > > It looks like a binutils issue. I am investigating it now.
> > >
> >
> > I have identified that
> >
> > http://sourceware.org/ml/binutils/2005-12/msg00001.html
> >
> > breaks building glibc 2.3 in CVS with gcc 3.4 in CVS. Jan, could you
> > please look into it?
>
> I opened a bug report:
>
> http://sources.redhat.com/bugzilla/show_bug.cgi?id=2117
>
> I will revert the change if it isn't fixed by next Monday.
>
>

Here is a patch to add a testcase for this bug.


H.J.
----
2006-01-06  H.J. Lu  <[hidden email]>

        PR gas/2117
        * gas/ia64/ia64.exp: Add ltoff22x-2.
        * gas/ia64/ltoff22x-2.d: New file.
        * gas/ia64/ltoff22x-2.s: Likewise.

--- gas/testsuite/gas/ia64/ia64.exp.equ 2005-10-24 08:48:40.000000000 -0700
+++ gas/testsuite/gas/ia64/ia64.exp 2006-01-06 12:19:47.000000000 -0800
@@ -46,6 +46,7 @@ if [istarget "ia64-*"] then {
     run_dump_test "ldxmov-1"
     run_list_test "ldxmov-2" ""
     run_dump_test "ltoff22x-1"
+    run_dump_test "ltoff22x-2"
 
     run_dump_test "nostkreg"
     run_list_test "invalid-ar" ""
--- gas/testsuite/gas/ia64/ltoff22x-2.d.equ 2006-01-06 12:12:42.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-2.d 2006-01-06 12:14:34.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-2
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-2.s.equ 2006-01-06 12:12:42.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-2.s 2006-01-06 12:13:45.000000000 -0800
@@ -0,0 +1,13 @@
+ .global foo#
+ foo# = bar#
+ .global bar#
+ .data
+bar:
+ data4 0
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ (p6) ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0

Reply | Threaded
Open this post in threaded view
|

PATCH: PR gas/2117: IA64 assembler is broken

H.J. Lu-27
On Fri, Jan 06, 2006 at 12:23:05PM -0800, H. J. Lu wrote:

> >
> > I opened a bug report:
> >
> > http://sources.redhat.com/bugzilla/show_bug.cgi?id=2117
> >
> > I will revert the change if it isn't fixed by next Monday.
> >
> >
>
> Here is a patch to add a testcase for this bug.
>

Here is a patch and a few testcases. I don't think snapshot_symbol
should change a defined symbol.


H.J.
----
gas/

2006-01-06  H.J. Lu  <[hidden email]>

        PR gas/2117
        * symbols.c (snapshot_symbol): Don't change a defined symbol.

gas/testsuite/

2006-01-06  H.J. Lu  <[hidden email]>

        PR gas/2117
        * gas/ia64/ia64.exp: Add ltoff22x-2, ltoff22x-3, ltoff22x-4 and
        ltoff22x-5.

        * gas/ia64/ltoff22x-2.d: New file.
        * gas/ia64/ltoff22x-2.s: Likewise.
        * gas/ia64/ltoff22x-3.d: Likewise.
        * gas/ia64/ltoff22x-3.s: Likewise.
        * gas/ia64/ltoff22x-4.d: Likewise.
        * gas/ia64/ltoff22x-4.s: Likewise.
        * gas/ia64/ltoff22x-5.d: Likewise.
        * gas/ia64/ltoff22x-5.s: Likewise.

--- gas/symbols.c.equ 2005-12-24 08:16:57.000000000 -0800
+++ gas/symbols.c 2006-01-06 17:40:57.000000000 -0800
@@ -1399,7 +1399,9 @@ snapshot_symbol (symbolS **symbolPP, val
     }
  }
 
-      *symbolPP = symbolP;
+      /* Never change a defined symbol.  */
+      if (symbolP->bsym->section == undefined_section)
+ *symbolPP = symbolP;
       *valueP = expr.X_add_number;
       *segP = symbolP->bsym->section;
       *fragPP = symbolP->sy_frag;
--- gas/testsuite/gas/ia64/ia64.exp.equ 2005-10-24 08:48:40.000000000 -0700
+++ gas/testsuite/gas/ia64/ia64.exp 2006-01-06 17:36:37.000000000 -0800
@@ -46,6 +46,13 @@ if [istarget "ia64-*"] then {
     run_dump_test "ldxmov-1"
     run_list_test "ldxmov-2" ""
     run_dump_test "ltoff22x-1"
+    run_dump_test "ltoff22x-2"
+    run_dump_test "ltoff22x-3"
+    run_dump_test "ltoff22x-4"
+    run_dump_test "ltoff22x-5"
+
+    run_dump_test "nostkreg"
+    run_list_test "invalid-ar" ""
 
     run_dump_test "nostkreg"
     run_list_test "invalid-ar" ""
--- gas/testsuite/gas/ia64/ltoff22x-2.d.equ 2006-01-06 12:12:42.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-2.d 2006-01-06 17:36:37.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-2
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-2.s.equ 2006-01-06 12:12:42.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-2.s 2006-01-06 17:36:37.000000000 -0800
@@ -0,0 +1,13 @@
+ .global foo#
+ foo# = bar#
+ .global bar#
+ .data
+bar:
+ data4 0
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0
--- gas/testsuite/gas/ia64/ltoff22x-3.d.equ 2006-01-06 17:36:37.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-3.d 2006-01-06 17:36:37.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-3
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-3.s.equ 2006-01-06 17:36:37.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-3.s 2006-01-06 17:36:37.000000000 -0800
@@ -0,0 +1,13 @@
+ .global bar#
+ .data
+bar:
+ data4 0
+ .global foo#
+ foo# = bar#
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0
--- gas/testsuite/gas/ia64/ltoff22x-4.d.equ 2006-01-06 17:36:37.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-4.d 2006-01-06 17:36:37.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-4
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-4.s.equ 2006-01-06 17:36:37.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-4.s 2006-01-06 17:36:37.000000000 -0800
@@ -0,0 +1,13 @@
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0
+ .global foo#
+ foo# = bar#
+ .global bar#
+ .data
+bar:
+ data4 0
--- gas/testsuite/gas/ia64/ltoff22x-5.d.equ 2006-01-06 17:36:37.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-5.d 2006-01-06 17:36:37.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-5
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-5.s.equ 2006-01-06 17:36:37.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-5.s 2006-01-06 17:36:37.000000000 -0800
@@ -0,0 +1,13 @@
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0
+ .global bar#
+ .data
+bar:
+ data4 0
+ .global foo#
+ foo# = bar#

Reply | Threaded
Open this post in threaded view
|

Re: PATCH: PR gas/2117: IA64 assembler is broken

Jan Beulich
>--- gas/symbols.c.equ 2005-12-24 08:16:57.000000000 -0800
>+++ gas/symbols.c 2006-01-06 17:40:57.000000000 -0800
>@@ -1399,7 +1399,9 @@ snapshot_symbol (symbolS **symbolPP, val
>    }
> }
>
>-      *symbolPP = symbolP;
>+      /* Never change a defined symbol.  */
>+      if (symbolP->bsym->section == undefined_section)
>+ *symbolPP = symbolP;
>       *valueP = expr.X_add_number;
>       *segP = symbolP->bsym->section;
>       *fragPP = symbolP->sy_frag;

The minimum, as I view it, is to also include expr_section symbols
here. Beyond that, assuming that you already checked that no existing
test case breaks, I hope this change will not have other ill effects.

Jan

Reply | Threaded
Open this post in threaded view
|

Re: PATCH: PR gas/2117: IA64 assembler is broken

H.J. Lu-27
On Mon, Jan 09, 2006 at 10:53:41AM +0100, Jan Beulich wrote:

> >--- gas/symbols.c.equ 2005-12-24 08:16:57.000000000 -0800
> >+++ gas/symbols.c 2006-01-06 17:40:57.000000000 -0800
> >@@ -1399,7 +1399,9 @@ snapshot_symbol (symbolS **symbolPP, val
> >    }
> > }
> >
> >-      *symbolPP = symbolP;
> >+      /* Never change a defined symbol.  */
> >+      if (symbolP->bsym->section == undefined_section)
> >+ *symbolPP = symbolP;
> >       *valueP = expr.X_add_number;
> >       *segP = symbolP->bsym->section;
> >       *fragPP = symbolP->sy_frag;
>
> The minimum, as I view it, is to also include expr_section symbols
> here. Beyond that, assuming that you already checked that no existing
> test case breaks, I hope this change will not have other ill effects.

The old code doesn't include expr_section symbols. I don't think we
should change it unless we have a testcase to show it is necessary.


H.J.

Reply | Threaded
Open this post in threaded view
|

Re: PATCH: PR gas/2117: IA64 assembler is broken

H.J. Lu-27
In reply to this post by Jan Beulich
On Mon, Jan 09, 2006 at 10:53:41AM +0100, Jan Beulich wrote:

> >--- gas/symbols.c.equ 2005-12-24 08:16:57.000000000 -0800
> >+++ gas/symbols.c 2006-01-06 17:40:57.000000000 -0800
> >@@ -1399,7 +1399,9 @@ snapshot_symbol (symbolS **symbolPP, val
> >    }
> > }
> >
> >-      *symbolPP = symbolP;
> >+      /* Never change a defined symbol.  */
> >+      if (symbolP->bsym->section == undefined_section)
> >+ *symbolPP = symbolP;
> >       *valueP = expr.X_add_number;
> >       *segP = symbolP->bsym->section;
> >       *fragPP = symbolP->sy_frag;
>
> The minimum, as I view it, is to also include expr_section symbols
> here. Beyond that, assuming that you already checked that no existing
> test case breaks, I hope this change will not have other ill effects.
>

This patch also checks expr_section.


H.J.
---
gas/

2006-01-06  H.J. Lu  <[hidden email]>

        PR gas/2117
        * symbols.c (snapshot_symbol): Don't change a defined symbol.

gas/testsuite/

2006-01-06  H.J. Lu  <[hidden email]>

        PR gas/2117
        * gas/ia64/ia64.exp: Add ltoff22x-2, ltoff22x-3, ltoff22x-4 and
        ltoff22x-5.

        * gas/ia64/ltoff22x-2.d: New file.
        * gas/ia64/ltoff22x-2.s: Likewise.
        * gas/ia64/ltoff22x-3.d: Likewise.
        * gas/ia64/ltoff22x-3.s: Likewise.
        * gas/ia64/ltoff22x-4.d: Likewise.
        * gas/ia64/ltoff22x-4.s: Likewise.
        * gas/ia64/ltoff22x-5.d: Likewise.
        * gas/ia64/ltoff22x-5.s: Likewise.

--- gas/symbols.c.equ 2005-12-24 08:14:38.000000000 -0800
+++ gas/symbols.c 2006-01-09 08:05:46.000000000 -0800
@@ -1399,7 +1399,10 @@ snapshot_symbol (symbolS **symbolPP, val
     }
  }
 
-      *symbolPP = symbolP;
+      /* Never change a defined symbol.  */
+      if (symbolP->bsym->section == undefined_section
+  || symbolP->bsym->section == expr_section)
+ *symbolPP = symbolP;
       *valueP = expr.X_add_number;
       *segP = symbolP->bsym->section;
       *fragPP = symbolP->sy_frag;
--- gas/testsuite/gas/ia64/ia64.exp.equ 2005-10-24 08:03:06.000000000 -0700
+++ gas/testsuite/gas/ia64/ia64.exp 2006-01-09 08:05:25.000000000 -0800
@@ -46,6 +46,13 @@ if [istarget "ia64-*"] then {
     run_dump_test "ldxmov-1"
     run_list_test "ldxmov-2" ""
     run_dump_test "ltoff22x-1"
+    run_dump_test "ltoff22x-2"
+    run_dump_test "ltoff22x-3"
+    run_dump_test "ltoff22x-4"
+    run_dump_test "ltoff22x-5"
+
+    run_dump_test "nostkreg"
+    run_list_test "invalid-ar" ""
 
     run_dump_test "nostkreg"
     run_list_test "invalid-ar" ""
--- gas/testsuite/gas/ia64/ltoff22x-2.d.equ 2006-01-09 08:05:25.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-2.d 2006-01-09 08:05:25.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-2
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-2.s.equ 2006-01-09 08:05:25.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-2.s 2006-01-09 08:05:25.000000000 -0800
@@ -0,0 +1,13 @@
+ .global foo#
+ foo# = bar#
+ .global bar#
+ .data
+bar:
+ data4 0
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0
--- gas/testsuite/gas/ia64/ltoff22x-3.d.equ 2006-01-09 08:05:25.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-3.d 2006-01-09 08:05:25.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-3
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-3.s.equ 2006-01-09 08:05:25.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-3.s 2006-01-09 08:05:25.000000000 -0800
@@ -0,0 +1,13 @@
+ .global bar#
+ .data
+bar:
+ data4 0
+ .global foo#
+ foo# = bar#
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0
--- gas/testsuite/gas/ia64/ltoff22x-4.d.equ 2006-01-09 08:05:25.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-4.d 2006-01-09 08:05:25.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-4
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-4.s.equ 2006-01-09 08:05:25.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-4.s 2006-01-09 08:05:25.000000000 -0800
@@ -0,0 +1,13 @@
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0
+ .global foo#
+ foo# = bar#
+ .global bar#
+ .data
+bar:
+ data4 0
--- gas/testsuite/gas/ia64/ltoff22x-5.d.equ 2006-01-09 08:05:25.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-5.d 2006-01-09 08:05:25.000000000 -0800
@@ -0,0 +1,11 @@
+# objdump: -r
+# name: ia64 ltoff22x-5
+
+.*: +file format .*
+
+RELOCATION RECORDS FOR \[\.text\]:
+OFFSET[ ]+TYPE[ ]+VALUE
+0+000 LTOFF22X          foo
+0+010 LDXMOV            foo
+
+
--- gas/testsuite/gas/ia64/ltoff22x-5.s.equ 2006-01-09 08:05:25.000000000 -0800
+++ gas/testsuite/gas/ia64/ltoff22x-5.s 2006-01-09 08:05:25.000000000 -0800
@@ -0,0 +1,13 @@
+ .text
+ addl r3 = @ltoffx(foo#), gp
+ nop.i 0
+ nop.i 0
+ ld8.mov r3 = [r3], foo#
+ nop.i 0
+ nop.i 0
+ .global bar#
+ .data
+bar:
+ data4 0
+ .global foo#
+ foo# = bar#