Bug 45639 - [4.6 Regression] /usr/ccs/bin/ld: Data address is out of range for short load or store
Summary: [4.6 Regression] /usr/ccs/bin/ld: Data address is out of range for short load...
Status: RESOLVED DUPLICATE of bug 45612
Alias: None
Product: gcc
Classification: Unclassified
Component: tree-optimization (show other bugs)
Version: 4.6.0
: P3 normal
Target Milestone: ---
Assignee: Not yet assigned to anyone
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-09-10 15:28 UTC by John David Anglin
Modified: 2010-09-12 13:06 UTC (History)
4 users (show)

See Also:
Host: hppa2.0w-hp-hpux11.11
Target: hppa2.0w-hp-hpux11.11
Build: hppa2.0w-hp-hpux11.11
Known to work:
Known to fail:
Last reconfirmed: 2010-09-11 07:10:43


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description John David Anglin 2010-09-10 15:28:01 UTC
cd rts; ../../xgcc -B../../ -shared -g -O2  \
                -fPIC -frandom-seed=fixed-seed \
                -o libgnat-4.6.sl \
                a-assert.o a-calari.o a-calcon.o a-caldel.o a-calend.o a-calfor.
o a-catizo.o a-cdlili.o a-cgaaso.o a-cgarso.o a-cgcaso.o a-chacon.o a-chahan.o a
-charac.o a-chlat1.o a-chlat9.o a-chtgke.o a-chtgop.o a-chzla1.o a-chzla9.o a-ci
dlli.o a-cihama.o a-cihase.o a-ciorma.o a-ciormu.o a-ciorse.o a-clrefi.o a-coham
a.o a-cohase.o a-cohata.o a-coinve.o a-colien.o a-colire.o a-comlin.o a-contai.o
 a-convec.o a-coorma.o a-coormu.o a-coorse.o a-coprnu.o a-coteio.o a-crbltr.o a-
crbtgk.o a-crbtgo.o a-crdlli.o a-cwila1.o a-cwila9.o a-decima.o a-diocst.o a-dir
ect.o a-direio.o a-dirval.o a-einuoc.o a-elchha.o a-envvar.o a-except.o a-exctra
.o a-filico.o a-finali.o a-flteio.o a-fwteio.o a-fzteio.o a-inteio.o a-ioexce.o
a-iwteio.o a-izteio.o a-lcteio.o a-lfteio.o a-lfwtio.o a-lfztio.o a-liteio.o a-l
iwtio.o a-liztio.o a-llctio.o a-llftio.o a-llfwti.o a-llfzti.o a-llitio.o a-lliw
ti.o a-llizti.o a-ncelfu.o a-ngcefu.o a-ngcoty.o a-ngelfu.o a-ngrear.o a-nlcefu.
o a-nlcoty.o a-nlelfu.o a-nllcef.o a-nllcty.o a-nllefu.o a-nscefu.o a-nscoty.o a
-nselfu.o a-nucoty.o a-nudira.o a-nuelfu.o a-nuflra.o a-numaux.o a-numeri.o a-rb
tgso.o a-scteio.o a-secain.o a-sequio.o a-sfteio.o a-sfwtio.o a-sfztio.o a-shcai
n.o a-siocst.o a-siteio.o a-siwtio.o a-siztio.o a-slcain.o a-ssicst.o a-ssitio.o
 a-ssiwti.o a-ssizti.o a-stboha.o a-stfiha.o a-stmaco.o a-storio.o a-strbou.o a-
stream.o a-strfix.o a-strhas.o a-string.o a-strmap.o a-strsea.o a-strsup.o a-str
unb.o a-ststio.o a-stunau.o a-stunha.o a-stuten.o a-stwibo.o a-stwifi.o a-stwiha
.o a-stwima.o a-stwise.o a-stwisu.o a-stwiun.o a-stzbou.o a-stzfix.o a-stzhas.o
a-stzmap.o a-stzsea.o a-stzsup.o a-stzunb.o a-suenco.o a-suesen.o a-suewse.o a-s
uezse.o a-suteio.o a-swbwha.o a-swfwha.o a-swmwco.o a-swunau.o a-swuwha.o a-swuw
ti.o a-szbzha.o a-szfzha.o a-szmzco.o a-szunau.o a-szuzha.o a-szuzti.o a-tags.o
a-teioed.o a-textio.o a-tgdico.o a-tiboio.o a-ticoau.o a-ticoio.o a-tideau.o a-t
ideio.o a-tienau.o a-tienio.o a-tifiio.o a-tiflau.o a-tiflio.o a-tigeau.o a-tiin
au.o a-tiinio.o a-timoau.o a-timoio.o a-tiocst.o a-tirsfi.o a-titest.o a-tiunio.
o a-unccon.o a-uncdea.o a-wichun.o a-widcha.o a-witeio.o a-wrstfi.o a-wtcoau.o a
-wtcoio.o a-wtcstr.o a-wtdeau.o a-wtdeio.o a-wtedit.o a-wtenau.o a-wtenio.o a-wt
fiio.o a-wtflau.o a-wtflio.o a-wtgeau.o a-wtinau.o a-wtinio.o a-wtmoau.o a-wtmoi
o.o a-wttest.o a-wwboio.o a-wwunio.o a-zchara.o a-zchuni.o a-zrstfi.o a-ztcoau.o
 a-ztcoio.o a-ztcstr.o a-ztdeau.o a-ztdeio.o a-ztedit.o a-ztenau.o a-ztenio.o a-
ztexio.o a-ztfiio.o a-ztflau.o a-ztflio.o a-ztgeau.o a-ztinau.o a-ztinio.o a-ztm
oau.o a-ztmoio.o a-zttest.o a-zzboio.o a-zzunio.o ada.o calendar.o directio.o g-
allein.o g-alleve.o g-altcon.o g-altive.o g-alveop.o g-alvety.o g-alvevi.o g-arr
spl.o g-awk.o g-bubsor.o g-busora.o g-busorg.o g-byorma.o g-bytswa.o g-calend.o
g-casuti.o g-catiio.o g-cgi.o g-cgicoo.o g-cgideb.o g-comlin.o g-comver.o g-crc3
2.o g-ctrl_c.o g-curexc.o g-debpoo.o g-debuti.o g-decstr.o g-deutst.o g-diopit.o
 g-dirope.o g-dynhta.o g-dyntab.o g-encstr.o g-enutst.o g-excact.o g-except.o g-
exctra.o g-expect.o g-flocon.o g-heasor.o g-hesora.o g-hesorg.o g-htable.o g-io.
o g-io_aux.o g-locfil.o g-mbdira.o g-mbflra.o g-md5.o g-memdum.o g-moreex.o g-os
_lib.o g-pehage.o g-rannum.o g-regexp.o g-regpat.o g-sechas.o g-sehamd.o g-sehas
h.o g-sercom.o g-sestin.o g-sha1.o g-sha224.o g-sha256.o g-sha384.o g-sha512.o g
-shsh32.o g-shsh64.o g-shshco.o g-souinf.o g-spchge.o g-speche.o g-spipat.o g-sp
itbo.o g-sptabo.o g-sptain.o g-sptavs.o g-string.o g-strspl.o g-table.o g-tasloc
.o g-timsta.o g-traceb.o g-u3spch.o g-utf_32.o g-wispch.o g-wistsp.o g-zspche.o
g-zstspl.o gnat.o i-c.o i-cexten.o i-cobol.o i-cpoint.o i-cpp.o i-cstrea.o i-cst
rin.o i-fortra.o i-pacdec.o interfac.o ioexcept.o machcode.o s-addima.o s-addope
.o s-arit64.o s-assert.o s-atacco.o s-auxdec.o s-bitops.o s-boarop.o s-carsi8.o
s-carun8.o s-casi16.o s-casi32.o s-casi64.o s-casuti.o s-caun16.o s-caun32.o s-c
aun64.o s-chepoo.o s-commun.o s-conca2.o s-conca3.o s-conca4.o s-conca5.o s-conc
a6.o s-conca7.o s-conca8.o s-conca9.o s-crc32.o s-crtl.o s-crtrun.o s-direio.o s
-dsaser.o s-except.o s-exctab.o s-exnint.o s-exnllf.o s-exnlli.o s-expint.o s-ex
plli.o s-expllu.o s-expmod.o s-expuns.o s-fatflt.o s-fatgen.o s-fatlfl.o s-fatll
f.o s-fatsfl.o s-ficobl.o s-fileio.o s-filofl.o s-finimp.o s-finroo.o s-fishfl.o
 s-fore.o s-fvadfl.o s-fvaffl.o s-fvagfl.o s-geveop.o s-gloloc.o s-htable.o s-im
enne.o s-imgbiu.o s-imgboo.o s-imgcha.o s-imgdec.o s-imgenu.o s-imgint.o s-imgll
b.o s-imglld.o s-imglli.o s-imgllu.o s-imgllw.o s-imgrea.o s-imguns.o s-imgwch.o
 s-imgwiu.o s-io.o s-maccod.o s-mantis.o s-mastop.o s-memcop.o s-memory.o s-os_l
ib.o s-osprim.o s-pack03.o s-pack05.o s-pack06.o s-pack07.o s-pack09.o s-pack10.
o s-pack11.o s-pack12.o s-pack13.o s-pack14.o s-pack15.o s-pack17.o s-pack18.o s
-pack19.o s-pack20.o s-pack21.o s-pack22.o s-pack23.o s-pack24.o s-pack25.o s-pa
ck26.o s-pack27.o s-pack28.o s-pack29.o s-pack30.o s-pack31.o s-pack33.o s-pack3
4.o s-pack35.o s-pack36.o s-pack37.o s-pack38.o s-pack39.o s-pack40.o s-pack41.o
 s-pack42.o s-pack43.o s-pack44.o s-pack45.o s-pack46.o s-pack47.o s-pack48.o s-
pack49.o s-pack50.o s-pack51.o s-pack52.o s-pack53.o s-pack54.o s-pack55.o s-pac
k56.o s-pack57.o s-pack58.o s-pack59.o s-pack60.o s-pack61.o s-pack62.o s-pack63
.o s-parame.o s-parint.o s-pooglo.o s-pooloc.o s-poosiz.o s-powtab.o s-purexc.o
s-rannum.o s-regexp.o s-regpat.o s-restri.o s-rident.o s-rpc.o s-scaval.o s-secs
ta.o s-sequio.o s-shasto.o s-soflin.o s-stache.o s-stalib.o s-stausa.o s-stchop.
o s-stoele.o s-stopoo.o s-stratt.o s-strhas.o s-string.o s-ststop.o s-tasloc.o s
-traceb.o s-traces.o s-traent.o s-unstyp.o s-utf_32.o s-vaflop.o s-valboo.o s-va
lcha.o s-valdec.o s-valenu.o s-valint.o s-vallld.o s-vallli.o s-valllu.o s-valre
a.o s-valuns.o s-valuti.o s-valwch.o s-veboop.o s-vector.o s-vercon.o s-vmexta.o
 s-wchcnv.o s-wchcon.o s-wchjis.o s-wchstw.o s-wchwts.o s-widboo.o s-widcha.o s-
widenu.o s-widlli.o s-widllu.o s-widwch.o s-wwdcha.o s-wwdenu.o s-wwdwch.o seque
nio.o system.o text_io.o unchconv.o unchdeal.o g-soccon.o g-socket.o g-socthi.o
g-soliop.o g-sothco.o  adadecode.o adaint.o argv.o cio.o cstreams.o ctrl_c.o err
no.o exit.o env.o raise.o sysdep.o aux-io.o init.o initialize.o seh_init.o cal.o
 arit64.o final.o tracebak.o expect.o mkdir.o socket.o targext.o raise-gcc.o \
                -Wl,+h,libgnat-4.6.sl \
                 -lm
/usr/ccs/bin/ld: Data address is out of range for short load or store
   Reference from:  g-debpoo.o(0x148)
/usr/ccs/bin/ld: Invalid fixups exist
collect2: ld returned 1 exit status
make[5]: *** [gnatlib-shared-default] Error 1
make[5]: Leaving directory `/test/gnu/gcc/objdir/gcc/ada'
make[4]: *** [gnatlib-shared-dual] Error 2
make[4]: Leaving directory `/test/gnu/gcc/objdir/gcc/ada'
make[3]: *** [gnatlib-shared] Error 2
make[3]: Leaving directory `/test/gnu/gcc/objdir/gcc/ada'
make[2]: *** [gnatlib-shared] Error 2
make[2]: Leaving directory `/test/gnu/gcc/objdir/hppa2.0w-hp-hpux11.11/libada'
make[1]: *** [all-target-libada] Error 2

The error is caused by the following assembler code:

        bl .+8,%r1
        depi 0,31,2,%r1
L$0375:
        ldo L$0371-L$0375(%r1),%r1

This code sequence is generated to load a label operand when
generating PIC code.  The above reference to L$0371 is the only
reference to it in the .s file.

  /* If we're trying to load the address of a label that happens to be
     close, then we can use a shorter sequence.  */
  if (GET_CODE (operands[1]) == LABEL_REF
      && !LABEL_REF_NONLOCAL_P (operands[1])
      && INSN_ADDRESSES_SET_P ()
      && abs (INSN_ADDRESSES (INSN_UID (XEXP (operands[1], 0)))
                - INSN_ADDRESSES (INSN_UID (insn))) < 8100)
    output_asm_insn (\"ldo %1-%2(%0),%0\", xoperands);
  else
    {
      output_asm_insn (\"addil L%%%1-%2,%0\", xoperands);
      output_asm_insn (\"ldo R%%%1-%2(%0),%0\", xoperands);
    }

There is no code_label for 371 in .expand, but there are two references:

(jump_insn 365 556 557 84 (set (pc)
        (if_then_else (ne (subreg:SI (reg/v:DI 227 [ current ]) 4)
                (subreg:SI (reg:DI 228 [ D.6648 ]) 4))
            (label_ref 371)
            (pc))) g-debpoo.adb:782 -1
     (expr_list:REG_BR_PROB (const_int 2900 [0xb54])
        (nil))
 -> 371)
;; End of basic block 84 -> ( 88 85)

;; Succ edge  88 [29.0%]
;; Succ edge  85 [71.0%]  (fallthru)

;; Start of basic block ( 84) -> 85
;; Pred edge  84 [71.0%]  (fallthru)
(note 557 365 366 85 [bb 85] NOTE_INSN_BASIC_BLOCK)

(jump_insn 366 557 367 85 (set (pc)
        (label_ref 371)) g-debpoo.adb:782 -1
     (nil)
 -> 371)
;; End of basic block 85 -> ( 88)
Comment 1 Eric Botcazou 2010-09-11 07:10:43 UTC
Same problem on the SPARC reported under PR45612.
Comment 2 John David Anglin 2010-09-12 13:06:04 UTC
Caused by same change as on SPARC.

*** This bug has been marked as a duplicate of 45612 ***