aboutsummaryrefslogtreecommitdiff
BranchCommit messageAuthorAge
FSFimport of readlilne 5.1Elena Zannoni19 years
add-fakeroots-dirThis commit was manufactured by cvs2svn to create branch 'add-fakeroots-nobody22 years
arc-20081103-branchThis commit was manufactured by cvs2svn to create branchnobody16 years
arc-insight_6_8-branchgdb/insight for ARCompact (from Richard Stuckey)Joern Rennecke16 years
azanella/pt_gnu_mutableelf: Add PT_GNU_MUTABLEAdhemerval Zanella2 days
binutils-2_10-branchUse ${CONSTRUCTING...} to enclose constructors and destructors.Nick Clifton24 years
binutils-2_11-branch2002-01-31 David O'Brien <obrien@FreeBSD>David O'Brien23 years
binutils-2_12-branch* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Only insertJason Thorpe23 years
binutils-2_13-branchdaily updateAlan Modra22 years
binutils-2_14-branchdaily updateAlan Modra21 years
binutils-2_15-branch(use_parallel): Change default value from 1 to 0.Nick Clifton20 years
binutils-2_16-branchdaily updateAlan Modra19 years
binutils-2_17-branchdaily updateAlan Modra18 years
binutils-2_18-branchdaily updateAlan Modra17 years
binutils-2_19-branchdaily updateAlan Modra16 years
binutils-2_20-branchdaily updateAlan Modra14 years
binutils-2_21-branchbfd/ChangeLogYufeng Zhang12 years
binutils-2_22-branchbfd/ChangeLogYufeng Zhang12 years
binutils-2_22_branchbfd/Tristan Gingold13 years
binutils-2_23-branchdaily updateAlan Modra11 years
binutils-2_24-branchBackport from mainlineTerry Guo10 years
binutils-2_25-branchMIPS/GAS: Fix an ISA override not lifting ABI restrictionsMaciej W. Rozycki9 years
binutils-2_26-branchAdd support for the new 'lnia' extended mnemonic.Peter Bergner8 years
binutils-2_27-branchUpdate -maltivec and -mvsx options to only enable their oldest instructions.Peter Bergner8 years
binutils-2_28-branchFix snafu in aarch64 opcodes debugging statement.Tamar Christina7 years
binutils-2_29-branchNew plugin interface to get list of symbols wrapped with --wrap option.Sriraman Tallam7 years
binutils-2_30-branchPR24355, segmentation fault in function called from ppc_finish_symbolsAlan Modra6 years
binutils-2_31-branchpowerpc64-ld infinite loopAlan Modra5 years
binutils-2_32-branchpowerpc64-ld infinite loopAlan Modra5 years
binutils-2_33-branchgas, arm: PR26858 Fix availability of single precision vmul/vmla in arm modeAndre Vieira4 years
binutils-2_34-branchPR27755, powerpc-ld infinite loopAlan Modra4 years
binutils-2_35-branchlibctf: fix ref leak of names of newly-inserted non-root-visible typesNick Alcock7 months
binutils-2_36-branchlibctf: fix ref leak of names of newly-inserted non-root-visible typesNick Alcock7 months
binutils-2_37-branchlibctf: fix ref leak of names of newly-inserted non-root-visible typesNick Alcock7 months
binutils-2_38-branchlibctf: fix ref leak of names of newly-inserted non-root-visible typesNick Alcock7 months
binutils-2_39-branchlibctf: fix ref leak of names of newly-inserted non-root-visible typesNick Alcock7 months
binutils-2_40-branchLoongArch: ld:Report an error when seeing an unrecognized relocationLulu Cai4 months
binutils-2_41-branchLoongArch/GAS: Add support for branch relaxationmengqinggang13 days
binutils-2_41-release-pointThe GNU Binutils 2.41 releaseNick Clifton19 months
binutils-2_42-branchPR32387 ppc64 TLS optimization bug with -fno-plt codeAlan Modra3 months
binutils-2_43-branchPR 32731 ub sanitizer accessing filenames_reversedAlan Modra2 weeks
binutils-2_44-branchAutomatic date update in version.inGDB Administrator16 hours
binutils-arc-20080908-branchThis commit was manufactured by cvs2svn to create branch 'binutils-nobody17 years
binutils-arc-20081103-branch * arc-opc-cgen.c (arc_cgen_init_opcode_table): Comment outJoern Rennecke16 years
binutils-csl-2_17-branch2006-12-18 Mark Shinwell <shinwell@codesourcery.com>Mark Shinwell18 years
binutils-csl-arm-2005q1-branch * gas/doc/c-arc.texi: Fix typo.Joseph Myers19 years
binutils-csl-gxxpro-3_4-branchUpdate.Carlos O'Donell19 years
cagney-unwind-20030108-branchmerge with mainlineAndrew Cagney22 years
cagney_bfdfile-20040213-branchThis commit was manufactured by cvs2svn to create branchnobody21 years
cagney_bigcore-20040122-branchIndex: bfd/ChangeLogAndrew Cagney21 years
cagney_convert-20030606-branchTOVAL.Mark Kettenis22 years
cagney_fileio-20030521-branch2003-05-21 Andrew Cagney <cagney@redhat.com>Andrew Cagney22 years
cagney_frameaddr-20030403-branchMerge with mainline.Andrew Cagney22 years
cagney_framebase-20030326-branchMerge with mainline.Andrew Cagney22 years
cagney_lazyid-20030317-branch2003-03-17 Andrew Cagney <cagney@redhat.com>Andrew Cagney22 years
cagney_offbyone-20030303-branch2003-03-11 Andrew Cagney <cagney@redhat.com>Andrew Cagney22 years
cagney_regbuf-20020515-branchmerge with tot.Andrew Cagney23 years
cagney_sysregs-20020825-branch2002-09-19 Andrew Cagney <cagney@redhat.com>Andrew Cagney22 years
cagney_tramp-20040309-branchFinal tramp-frame code.Andrew Cagney21 years
cagney_writestrings-20030508-branchSnap const char * mess.Andrew Cagney22 years
cagney_x86i386-20030821-branch2003-08-21 Andrew Cagney <cagney@redhat.com>Andrew Cagney22 years
carlton_dictionary-branch2004-01-26 David Carlton <carlton@kealia.com>David Carlton21 years
cgen-1_1-branch * Makefile.def (host_modules): Add cgen.Doug Evans16 years
cr-0x5f1This commit was manufactured by cvs2svn to create branch 'cr-0x5f1'.nobody19 years
csl-arm-20050325-branch Backport:Daniel Jacobowitz19 years
cygnusImport GNU gettext 0.10.35Ben Elliston23 years
cygwin-64bit-branchPull in changes from HEADCorinna Vinschen12 years
cygwin-64bit-premerge-branchThis commit was manufactured by cvs2svn to create branch 'cygwin-64bit-nobody12 years
dberlin-typesystem-branchTypesystem work initial import.Daniel Berlin24 years
dje-cgen-play1-branchThis commit was manufactured by cvs2svn to create branch 'dje-cgen-nobody16 years
drow-cplus-branch * Makefile.in (cp-names-main.tab.o): Rename to test-cp-names.tab.o.Daniel Jacobowitz21 years
drow-reverse-20070409-branchDaniel Jacobowitz' update to Michael Snyder's reverse debugging patchesMichael Snyder17 years
drow_intercu-20040221-branchMerge from mainline.Daniel Jacobowitz20 years
ezannoni_pie-20030916-branchmerge mainline changes into branchElena Zannoni21 years
ezannoni_pie-20040323-branch2004-03-23 Elena Zannoni <ezannoni@redhat.com>Elena Zannoni21 years
gdb-10-branchAutomatic date update in version.inGDB Administrator4 years
gdb-11-branchAutomatic date update in version.inGDB Administrator3 years
gdb-12-branchAutomatic date update in version.inGDB Administrator2 years
gdb-13-branchAutomatic date update in version.inGDB Administrator17 months
gdb-14-branchAutomatic date update in version.inGDB Administrator9 months
gdb-15-branchAutomatic date update in version.inGDB Administrator2 months
gdb-16-branchFix segfault if target_fileio_read_alloc failsBrandon Belew12 hours
gdb-4_18-branch1999-04-26 Jim Blandy <jimb@zwingli.cygnus.com>Jason Molenda26 years
gdb-7.10-branchFix '-data-read-memory-bytes' typo/assertionDon Breazeal9 years
gdb-7.11-branchSync proc_service definition with GLIBCAdhemerval Zanella9 years
gdb-7.12-branchAutomatic date update in version.inGDB Administrator8 years
gdb-7.7-branchAutomatic date update in version.inGDB Administrator11 years
gdb-7.8-branchSupport gdbarch_convert_register_p targets in address_from_registerMichael Eager10 years
gdb-7.9-branchAutomatic date update in version.inGDB Administrator10 years
gdb-8.0-branchFix AArch64 debug trace buildTamar Christina7 years
gdb-8.1-branchBump GDB version number to 8.1.1.DATE-git.Joel Brobecker7 years
gdb-8.2-branchAutomatic date update in version.inGDB Administrator6 years
gdb-8.3-branchAutomatic date update in version.inGDB Administrator5 years
gdb-9-branchAutomatic date update in version.inGDB Administrator4 years
gdb-csl-20060226-branch gdb/gdbserver/Richard Sandiford19 years
gdb-csl-arm-20051020-branch * gdb/regformats/regdat.sh: Include <stdlib.h>.Daniel Jacobowitz19 years
gdb-csl-available-20060303-branchTurn off debugging messages from the parser.Daniel Jacobowitz19 years
gdb-csl-gxxpro-6_3-branchRemove changelog entries from wrong branch.Daniel Jacobowitz19 years
gdb-csl-symbian-20060226-branch Backport:Daniel Jacobowitz18 years
gdb-premipsmulti-2000-06-06-branchPrint all known but not yet multi-arched values.Andrew Cagney25 years
gdb_5_0-2000-04-10-branchFrom trunk, pass $(infodir) down to doc.Andrew Cagney25 years
gdb_5_1-2001-07-29-branch2002-02-01 David O'Brien <obrien@FreeBSD>David O'Brien23 years
gdb_5_1_0_1-2002-01-03-branchBump to 5.1.0.1gdbadmin23 years
gdb_5_2-branch*** empty log message ***gdbadmin22 years
gdb_5_3-branch*** empty log message ***gdbadmin22 years
gdb_6_0-branch*** empty log message ***gdbadmin21 years
gdb_6_1-branch*** empty log message ***gdbadmin21 years
gdb_6_2-branchLet the good times roll.Andrew Cagney21 years
gdb_6_3-branch*** empty log message ***gdbadmin19 years
gdb_6_4-branch*** empty log message ***gdbadmin19 years
gdb_6_5-branch*** empty log message ***gdbadmin18 years
gdb_6_6-branch*** empty log message ***gdbadmin18 years
gdb_6_7-branch*** empty log message ***gdbadmin17 years
gdb_6_8-branch*** empty log message ***gdbadmin15 years
gdb_7_0-branch*** empty log message ***gdbadmin15 years
gdb_7_1-branch2010-08-06 Maciej W. Rozycki <macro@codesourcery.com>Pedro Alves15 years
gdb_7_2-branch * gdb.texinfo (Trace File Format): Move node later.Tom Tromey14 years
gdb_7_3-branch2012-03-06 Pedro Alves <palves@redhat.com>Pedro Alves13 years
gdb_7_4-branch*** empty log message ***gdbadmin13 years
gdb_7_5-branch*** empty log message ***gdbadmin12 years
gdb_7_6-branchgdb: xtensa: fix on 64-bit hostsBaruch Siach11 years
gdb_s390-2001-09-26-branch* s390-tdep.c, s390-nat.c: Update copyright.Andrew Cagney23 years
insight_6_8-branchRetrospectively check in source files modified in insight 6.8 release.Joern Rennecke16 years
interps-20030202-branchStray droppings.Andrew Cagney22 years
jimb-dwarf-compression-021023-branchWIP. If you can figure it out, more power to you.Jim Blandy22 years
jimb-macro-020506-branchExpand preprocessor macros in C expressions.Jim Blandy23 years
jimb-ppc64-linux-20030509-branchPatch from Will Schmidt <willschm@us.ibm.com>:Jim Blandy22 years
jimb-ppc64-linux-20030528-branchRevert change for revision.Jim Blandy22 years
jimb-ppc64-linux-20030613-branch* ppc-linux-tdep.c (ppc64_linux_bfd_entry_point): New function.Jim Blandy22 years
jimb-rda-nptl-branchThis commit was manufactured by cvs2svn to create branch 'jimb-rda-nptl-nobody20 years
jimb-separate-debug-021125-branchMerge changes from trunk.Jim Blandy22 years
jimb-separate-debug-021223-branchAdd support for executables whose debug info has been separatedJim Blandy22 years
jimb_gnu_v3_branchA single-file branch to help me keep things straight while adaptingJim Blandy24 years
kettenis-i386newframe-20030308-branch* i386-tdep.c (struct i386_frame_cache): Remove frameless.Mark Kettenis22 years
kettenis_i386newframe-20030406-branchThis commit was manufactured by cvs2svn to create branchnobody22 years
kettenis_i386newframe-20030419-branch * alpha-mdebug-tdep.c (alpha_mdebug_frame_p): Reject prologues.Richard Henderson22 years
kettenis_sparc-20030918-branch* sparcnbsd-tdep.c: Update copyright year.Mark Kettenis21 years
kseitz_interps-20020528-branch2002-11-05 Elena Zannoni <ezannoni@redhat.com>Elena Zannoni22 years
masterRISC-V: PR32772, fixed segfault caused by the accidental removal of `h != NULL'Nelson Chu10 hours
msnyder-checkpoint-072509-branch2009-08-06 Michael Snyder <msnyder@vmware.com>Michael Snyder16 years
msnyder-fork-checkpoint-branch2005-12-19 Michael Van Meter Snyder <michsnyd@clwang-lnx.cisco.com>Michael Snyder19 years
msnyder-reverse-20060331-branch2006-03-31 Michael Snyder <msnyder@redhat.com>Michael Snyder19 years
msnyder-reverse-20060502-branch2006-05-03 Michael Snyder <msnyder@redhat.com>Michael Snyder19 years
msnyder-reverse-20080609-branch2008-06-25 Michael Snyder <msnyder@specifix.com>Michael Snyder17 years
msnyder-tracepoint-checkpoint-branch2005-06-03 Michael Snyder <msnyder@redhat.com>Michael Snyder20 years
multiprocess-20081120-branch2008-12-22 Hui Zhu <teawater@gmail.com>Hui Zhu16 years
newlib-1_17_0-arcSupport for ARCompact architecture.Joern Rennecke16 years
newlib-autotools-branchAdd missing file needed for configuring.Jeff Johnston19 years
newlib-csl-20060320-branch libgloss/Kazu Hirata18 years
nickrob-async-20060513-branch*** empty log message ***Nick Roberts18 years
offbyone-20030313-branch2003-03-13 Andrew Cagney <cagney@redhat.com>Andrew Cagney22 years
origin/binutils-2_24-branchgas/Yufeng Zhang11 years
origin/hjl/linux/masterMerge remote-tracking branch 'origin/master' into hjl/linux/masterH.J. Lu10 years
readline_4_3-import-branch2002-08-27 Elena Zannoni <ezannoni@redhat.com>Elena Zannoni23 years
readline_5_1-import-branchImport readline 5.1 on the branch.Daniel Jacobowitz19 years
reverse-20080717-branch2008-10-10 Michael Snyder <msnyder@vmware.com>Michael Snyder16 years
reverse-20080930-branch2008-11-06 Hui Zhu <teawater@gmail.com>Hui Zhu16 years
reverse-20081226-branchAdd a debug message to function "record_arch_list_add".Hui Zhu16 years
sid-20020905-branchThis commit was manufactured by cvs2svn to create branchnobody23 years
tcltk840-20020924-branchThis commit was manufactured by cvs2svn to create branchnobody22 years
upstream/gdb-7.8-branchFix "attach" command vs user input racePedro Alves11 years
users/ARM/binutils-2_43-brancharm: Support pac_key_* register operand for MRS/MSR in Armv8.1-M MainlineAndre Vieira4 months
users/ARM/efi-aarch64-support-binutilsAArch64: Add support for AArch64 EFI (efi-*-aarch64).Tamar Christina3 years
users/ARM/embedded-binutils-2_26-branch2016-09-26 Andre Vieira <andre.simoesdiasvieira@arm.com>Thomas Preud'homme8 years
users/ARM/embedded-gdb-7.10-branchBump dateThomas Preud'homme8 years
users/ARM/gcsaarch64: Add support for GCS to AArch64 linkerSrinath Parvathaneni5 months
users/ARM/gcs-binutils-gdb-masteraarch64: Add support for GCS in AArch64 linker.Srinath Parvathaneni13 months
users/ARM/morello-binutils-gdb-mastermorello, testsuite: Fix up morello-stubs-static.dAlex Coplan15 months
users/ARM/sve[AArch64] Add SVE condition codesRichard Sandiford9 years
users/aburgess/bp-inferior-callsgdb: rename unwindonsignal to unwind-on-signalAndrew Burgess2 years
users/aburgess/gdb-opt-code-debug[wip] Fix range end handling of inlined subroutinesBernd Edlinger3 months
users/aburgess/try-core-file-pid0gdb: handle core files with .reg/0 section namesAndrew Burgess21 months
users/aburgess/try-fix-i386-tdesc-issuegdb/i386: fix tdesc rejection issue for targets without PTRACE_GETREGSETAndrew Burgess9 months
users/aburgess/try-gdb-block-entry-pcgdb: fix handling of DW_AT_entry_pc of inlined subroutinesAndrew Burgess4 months
users/aburgess/try-gdbserver-pass-osabigdbserver: pass osabi to GDB in more target descriptionsAndrew Burgess5 months
users/aburgess/try-mips-disasm-stylinglibopcodes/mips: add support for disassembler stylingAndrew Burgess2 years
users/ahajkova/try-frobgdb: Ignore some stringop-overflow and restrict warnings on sparcMark Wielaard2 years
users/ahayward/variable_sveAarch64 SVE: Support changing vector lengths in gdbserverAlan Hayward6 years
users/ahayward/variable_sve2Aarch64 SVE: Support changing vector lengths in gdbserverAlan Hayward6 years
users/ahayward/xml8/8: Remove xml files from gdbserverAlan Hayward7 years
users/ahayward/xml3[PATCH v3 8/8] Remove xml files from gdbserverAlan Hayward7 years
users/ahayward/xml4Remove xml files from gdbserverAlan Hayward7 years
users/alahay01/targetregcache[PATCH 7/7]: Regcache: Refactor raw_set_cached_valueAlan Hayward8 years
users/amerey/debuginfodPrint downloading notification only when file is found on serverAaron Merey5 years
users/amerey/debuginfod-sizeImprove cur/total display, remove higher verbosity settingAaron Merey3 years
users/amerey/download-gdb-indexgdb/debuginfod: Add .debug_line downloadingAaron Merey6 weeks
users/amerey/index-downloadgdb/debuginfod: Add .debug_line downloadingAaron Merey12 months
users/amerey/try-index-downloadgdb/testsuite/gdb.debuginfod: Add lazy downloading testsAaron Merey22 months
users/aoliva/SFNbring ChangeLog entries from master commitAlexandre Oliva7 years
users/apinski/gdb-ilp32-gdbserverHandle ILP32 AARCH64 correctly for gdbserverAndrew Pinski9 years
users/arnez/lkAdd S390 support for linux-kernel targetPhilipp Rudo8 years
users/arnez/lk3Add S390 support for linux-kernel targetPhilipp Rudo8 years
users/azanella/aarch64-split-stackgold: aarch64 split stack supportAdhemerval Zanella7 years
users/bheckel/fortran-entry-point-nested-subroutinesFortran: Document scope operator.Bernhard Heckel8 years
users/bheckel/fortran-oop-extend-typeFortran: Ptype, print type extension.Bernhard Heckel8 years
users/bheckel/fortran-stridesfortran: test cases for subarray strides and slicesChristoph Weinmann9 years
users/bheckel/fortran-vla-stringsfort_dyn_array: Fortran dynamic string supportBernhard Heckel9 years
users/cbiesinger/all-perf-patches[RFC] Don't block on finishing demangling msymbolsChristian Biesinger5 years
users/cbiesinger/arm-nbsdRemove use of deprecated core functions (in NetBSD/ARM)Christian Biesinger5 years
users/cbiesinger/demangle-mutexCompute msymbol hash codes in parallelChristian Biesinger5 years
users/cbiesinger/hashtableFork GCC's hash-table.h for use in GDBChristian Biesinger5 years
users/cbiesinger/minidumpStart working on reading .dmp filesChristian Biesinger5 years
users/cbiesinger/minsym-hash-one-threadput minsym building on one bg threadChristian Biesinger5 years
users/cbiesinger/parallel-minsyms-mutexPrecompute hash value for symbol_set_namesChristian Biesinger5 years
users/cbiesinger/stl_minsyms_hashTry converting ad-hoc msymbol hash tables to STL containersChristian Biesinger5 years
users/cbiesinger/threadpoolSwitch to futuresChristian Biesinger5 years
users/ccoutant/experimental-relrExperimental implementation of RELR-style relocations.Cary Coutant8 years
users/ccoutant/gold-recordFix two build issues.Cary Coutant9 years
users/ccoutant/two-level-line-150331Improve ODR checking.Cary Coutant10 years
users/ccoutant/two-level-line-tablesFix crash when section ends with a .lloc directive not followed by an insn.Cary Coutant10 years
users/chigot/try-lto-board-flagsld/testsuite: move board flags to ld_linkClément Chigot2 months
users/clyon/arm-fdpic[ARM] FDPIC: Implement Thumb-only PLT for FDPIC.Christophe Lyon7 years
users/clyon/arm-fdpic-wip-gdb-8.2FDPIC WIPChristophe Lyon6 years
users/clyon/gdb-7.5-fdpicARM/FDPIC: Add core file supportChristophe Lyon4 years
users/dje/google-7.10fixup 102430245.patchDoug Evans9 years
users/fche/try-xxhash-plusbinutils testsuite: canonicalize subtest names in libctfFrank Ch. Eigler6 months
users/gentoo/2.27opcodes: link against libbfd.la for rpath depsMike Frysinger8 years
users/gentoo/2.28opcodes: link against libbfd.la for rpath depsMike Frysinger8 years
users/guinevere/remove-stabsgdb: Remove stabs support from XCOFF inferiorsGuinevere Larsen5 weeks
users/guinevere/try-build-breakgdb: fix recent build breakage on 32 bit systemsGuinevere Larsen7 weeks
users/gwen/try-frame-unwind-c++-ificationgdb: add "unwinder class" to frame unwindersGuinevere Larsen13 months
users/gwen/try-frame-unwind-c++-ification-fixedgdb: Migrate frame unwinders to use C++ classesGuinevere Larsen13 months
users/helflym/try-aarch64ntold/testsuite: adjust ld-aarch64 tests for aarch64nto addressClément Chigot2 years
users/hjl/binutils-2_25-branchAdd a testcase for PR ld/18176H.J. Lu10 years
users/hjl/branch-mamd64 -mintel64H.J. Lu10 years
users/hjl/cacheExtract convert_load_reloc from x86 convert_loadH.J. Lu9 years
users/hjl/compressPlace .shstrtab before debug sectionsH.J. Lu10 years
users/hjl/dynobjAdd a fake bfd to hold linker created dynamic sectionsH.J. Lu9 years
users/hjl/gold-testAdd ld-elfvers/vers-gold.expH.J. Lu10 years
users/hjl/gotGold: Don't fail on R_X86_64_[REX_]GOTPCRELX relocationsH.J. Lu9 years
users/hjl/indbrAdd R_386_LOAD_GOT32H.J. Lu10 years
users/hjl/link_assignmentsAdd _bfd_elf_record_start_stopH.J. Lu9 years
users/hjl/linux/appliedMerge remote-tracking branch 'origin/users/hjl/linux/master' into users/hjl/l...H.J. Lu7 years
users/hjl/linux/trackMention hjl.tools@gmail.com in bug URLH.J. Lu11 years
users/hjl/mmap/writeAdd mmap.cH.J. Lu9 years
users/hjl/mpx/masterAdd bnd-branch-1 testH.J. Lu11 years
users/hjl/old-lto-mixedDon't check the plugin target twiceH.J. Lu10 years
users/hjl/outputRemove type_unknownH.J. Lu10 years
users/hjl/pr12639Check corrupted symbol tableH.J. Lu7 years
users/hjl/pr17878Support -plugin-opt=disable-outputH.J. Lu10 years
users/hjl/pr19553/binutils-2_26-branchDon't add DT_NEEDED for unmatched symbolH.J. Lu9 years
users/hjl/pr19818Properly handle relocs against absolute symbolsH.J. Lu9 years
users/hjl/pr19827/binutils-2_26-branchBind defined symbol locally in PIEH.J. Lu9 years
users/hjl/pr22032Call _close_and_cleanup in bfd_close_all_doneH.J. Lu8 years
users/hjl/pr22101Remove invalid .dynamic section with --only-keep-debugH.J. Lu7 years
users/hjl/pr22393/masterx86-64: Add tests for -z separate-code -z max-page-size=0x1000H.J. Lu7 years
users/hjl/pr22393/relrox86-64: Add tests for -z separate-code -z max-page-size=0x1000H.J. Lu7 years
users/hjl/pr25355/binutils-2_34-branchplugin: Search bfd-plugins directories only onceH.J. Lu5 years
users/hjl/relocsUpdate x86-64 testsH.J. Lu9 years
users/hjl/sharableAdd PT_GNU_SHR/SHF_GNU_SHARABLE/SHN_GNU_SHARABLE_COMMON support to gas/ldH.J. Lu9 years
users/hjl/sizeofInitial pr21964-3 testsH.J. Lu7 years
users/hjl/tlsx86: Lookup __tls_get_addr or ___tls_get_addr onceH.J. Lu8 years
users/hjl/try-pr30002ld: Use run_cc_link_tests for PR ld/26391 testsH.J. Lu2 years
users/hjl/versionRemove BFD_VERSION_DATEH.J. Lu10 years
users/ibhagat/libsframe-versioningbinutils/NEWS: add note about upcoming libsframe changesIndu Bhagat21 months
users/ibhagat/sframe-stacktracer-testsuitetestsuite: libsframest: more renamesIndu Bhagat10 months
users/ibhagat/try-pr32589objdump, readelf: apply relocations before textual dumpIndu Bhagat4 weeks
users/ibhagat/try-pr32589-pr32666ld: bfd: sframe: fix incorrect offset in RELA entriesIndu Bhagat12 days
users/ibhagat/try-scfi-aarch64-v2gas: aarch64: testsuite: add new tests for SCFIIndu Bhagat9 months
users/ibhagat/try-scfi-aarch64-v4gas: aarch64: testsuite: add new tests for SCFIIndu Bhagat8 months
users/ibhagat/try-scfi-aarch64-v5gas: aarch64: testsuite: add new tests for SCFIIndu Bhagat8 months
users/ibhagat/try-scfi-nextgas: x86: fix code comments and other nitsIndu Bhagat11 months
users/ibhagat/try-sframe-reloc-link-v1ld: bfd: sframe: fix incorrect r_addend in RELA entriesIndu Bhagat35 hours
users/ibhagat/try-sframe-scfi-nextgas: scfi: make gen_scfi_ops more readableIndu Bhagat8 months
users/ibm/binutils-2_24Fix objcopy and strip so that they remove their temporary files even if an er...Nick Clifton10 years
users/ibm/binutils-2_25Automatic date update in version.inGDB Administrator7 years
users/jemarch/gdb-libtoolgdb: link executables with libtoolJose E. Marchesi2 years
users/jemarch/new-bpf-atomicsgas: document V3 BPF atomic instructions in the GAS manualJose E. Marchesi22 months
users/jemarch/poke-gdbIntegrate GNU poke in GDBJose E. Marchesi22 months
users/jhb/cheri-gdb-12-branchRISC-V: Handle capability return values.John Baldwin2 years
users/jremus/sframe-stacktracer-testsuite-s390xs390: Initial support for s390xJens Remus10 months
users/jv/feature-py-jit-api-gen2gdb/python: add section in documentation on implementing JIT interfaceJan Vrany4 months
users/keiths/c++compile-submitCompile C++ feature.Keith Seitz8 years
users/keiths/inline-func-bp-for-pedroMore minimal patchKeith Seitz7 years
users/keiths/intelligent-breakpoint_re_setInitial publication of breakpoint reset project.Keith Seitz9 years
users/keiths/template-completionSupport template lookups in strncmp_iw_with_modeKeith Seitz7 years
users/keiths/try-constify-target_desc2Constify target_desc declarations and features/MakefileKeith Seitz2 years
users/linaro/binutils-2_25-branchFix the generation of alignment frags in code sections for AArch64.Nick Clifton8 years
users/linaro/binutils-2_27-branchMerge with binutils-2_27-branch rev b5d3ac20Adhemerval Zanella8 years
users/linaro/binutils-2_28-branchCorrect disassembly of dot product instructions.Tamar Christina7 years
users/linaro/gdb-aarch64-ilp32ILP32: GDBYao Qi7 years
users/lsix/poke-gdbgdb: Add the $_poke utility functionLancelot SIX2 years
users/lsix/try-require-c++17gdb: Use initializers in lambda captures unconditionallyLancelot Six17 months
users/luisgpm/aarch64-mte-v1Add memory tagging testcasesLuis Machado5 years
users/luisgpm/aarch64-mte-v2Add memory tagging testcasesLuis Machado5 years
users/luisgpm/aarch64-mte-v3Add memory tagging testcasesLuis Machado5 years
users/luisgpm/testAdd two missing return values in gdb.python/py-nested-maps.cGary Benson5 years
users/marxin/startswith-v2Remove strneq macro and use startswith.Martin Liska4 years
users/maskray/gold-relrgold: Add --pack-dyn-relocs=relr for arm/aarch64/x86-64 [PR 28601]Fangrui Song3 years
users/mmetzger/fsgs[wip] gdbserver, x86: support fs_base and gs_baseMarkus Metzger5 years
users/mmetzger/pr19340gdb, btrace, infrun: per-inferior run-controlMarkus Metzger6 months
users/mmetzger/pr31353gdb, infrun: fix multi-threaded reverse steppingMarkus Metzger6 months
users/mmetzger/record-goto-mibtrace: record stop moves to the end of the traceMarkus Metzger9 years
users/mnabipoor/poke-gdbWIP Fix poke_command to reset lexical cuckolding after errorMohammad-Reza Nabipoor5 months
users/mwk/s390-relrogold/s390: Support partial got relro.Marcin Kościelnicki9 years
users/mwk/s390-relro-oldgold/s390: Support partial got relro.Marcin Kościelnicki9 years
users/mwk/s390-relro-relgold/s390: Support partial got relro.Marcin Kościelnicki9 years
users/nalcock/road-to-ctfv4libctf: remove the layout section from v4 againNick Alcock3 days
users/palves/advance-until-fixesFix advance/until and multiple locations (PR gdb/26524)Pedro Alves5 years
users/palves/catch_exceptionszap catch_exceptionsPedro Alves7 years
users/palves/cli-optionspipe completer & var_string optionsPedro Alves6 years
users/palves/config.hFix gdbsupport build on compilers that don't default to C++11 or abovePedro Alves5 years
users/palves/core-prstatus-reworkRemove elf_backend_write_core_noteAlan Modra9 years
users/palves/ctrl-cDocument pseudo-terminal and interrupting changesPedro Alves4 years
users/palves/detach-step-overTestcase for detaching while stepping over breakpointPedro Alves4 years
users/palves/enum-flags-rewriteRewrite enum_flags, add unit tests, fix problemsPedro Alves5 years
users/palves/fix-objc-testsFix objc testsPedro Alves8 years
users/palves/fix-var-update-for-registersFix -var-update for registers in frames 1 and upPedro Alves9 years
users/palves/gdbserver-extract-unsigned-integerFix gdbserver's regcache_raw_read_unsigned on big endian hostsPedro Alves9 years
users/palves/gnulib-largefilelargefilePedro Alves5 years
users/palves/info_breakpoints_improvementsExtra indent & extra linePedro Alves3 years
users/palves/interrupt-while-step-overFix PR18360 - internal error when using "interrupt -a"Pedro Alves8 years
users/palves/interrupt-while-step-over-v1Fix PR18360 - internal error when using "interrupt -a"Pedro Alves8 years
users/palves/jit-speeduplookup_minimal_symbol_textPedro Alves8 years
users/palves/make_function_viewIntroduce gdb::make_function_viewPedro Alves3 years
users/palves/packedstruct packed: add fallback byte array implementation, use gcc_struct on Wind...Pedro Alves3 years
users/palves/per_ui_repeatshow_commandsPedro Alves7 years
users/palves/pr26199-busy-loop-target-eventsMake scoped_restore_current_thread's cdtors exception free (RFC)Pedro Alves5 years
users/palves/runto_mainEliminate mi_run_to_main, introduce mi_clean_restartPedro Alves4 years
users/palves/scoped_ignore_signalAdd a unit test for scoped_ignore_sigpipePedro Alves4 years
users/palves/statFix gnulib's lstat replacement in C++ namespace modePedro Alves5 years
users/palves/step-over-thread-exitCancel execution command on thread exit, when stepping, nexting, etc.Pedro Alves3 years
users/palves/step-over-thread-exit-test-raceFix gdb.threads/step-over-thread-exit.exp racePedro Alves16 months
users/palves/step-over-thread-exit-v3Cancel execution command on thread exit, when stepping, nexting, etc.Pedro Alves2 years
users/palves/step-over-thread-exit-v3.1Cancel execution command on thread exit, when stepping, nexting, etc.Pedro Alves24 months
users/palves/tls-nonthreadedUse libthread_db.so with non-threaded programs, for TLSPedro Alves7 years
users/palves/value_stringall languagesPedro Alves4 years
users/palves/windows-non-stopFix process-dies-after-detachPedro Alves10 months
users/pinskia/gdb-aarch64-ilp322015-09-22 Andrew Pinski <apinski@cavium.com>Andrew Pinski10 years
users/pkoning/multi-targetturn remote into a to_xclose targetPaul Koning9 years
users/pmuldoon/c++compileUpdate w/HEADKeith Seitz8 years
users/ppalka/readline-6.3-updateUpdate "signal SIGINT" testPatrick Palka10 years
users/ppalka/readline-7.0-updateSync readline/ to version 7.0 alphaPatrick Palka10 years
users/qiyao/frame-unwind-unavailable-3Move frame_id_build_unavailable_stack staticYao Qi7 years
users/qiyao/regcache-split-3regcache_raw and use it in to_{fetch,store}_registersYao Qi7 years
users/qiyao/regcache-split-4Move register_dump to regcache-dump.cYao Qi7 years
users/qiyao/regcache-split-4-1Move register_dump to regcache-dump.cYao Qi7 years
users/qiyao/regcache-split-4-2Pass readable_regcache to gdbarch method read_pcYao Qi7 years
users/qiyao/target-desc-2Remove features/i386/amd64-*linux.c and features/i386/x32-*linux.cYao Qi8 years
users/qiyao/target-desc-3Remove features/i386/amd64-*linux.c and features/i386/x32-*linux.cYao Qi8 years
users/qiyao/target-desc-4Convert the rest x86 target descriptionsYao Qi8 years
users/riscv/binutils-integration-2.37RISC-V/zfh: Added big endian testcase for .float16 directive.Nelson Chu4 years
users/riscv/binutils-integration-branchRISC-V/SiFive: Added SiFive custom cache control instructions.Nelson Chu3 years
users/roland/2.31/gold-narrowing-switch[gold] Fix integer narrowing in switchRoland McGrath7 years
users/roland/2.34/objcopy-merge-notes-qsortFix objcopy --merge-notes dependency on qsort implementation behavior.Roland McGrath5 years
users/roland/ar-qLNew L modifier for ar q operation to flatten archives.Roland McGrath4 years
users/roland/gold-narrowing-switch[gold] Fix integer narrowing in switchRoland McGrath7 years
users/roland/gprofng-zlibwipRoland McGrath3 years
users/roland/objcopy-merge-notes-qsortFix objcopy --merge-notes dependency on qsort implementation behavior.Roland McGrath5 years
users/roland/osabiRecognize GNU .note.ABI-tag values 5 (syllable) and 6 (nacl)Roland McGrath10 years
users/roland/riscv64-elf-sharedld: Don't disable -shared / -pie support for riscv*-elfRoland McGrath7 months
users/rth/x86-segSegment support for x86_64, part 2Richard Henderson9 years
users/sergiodj/bitposFinish gdb/aarch64-tdep.c fixSergio Durigan Junior6 years
users/simark/amdgpu-readelfbinutils/readelf: handle AMDGPU relocation typesSimon Marchi3 years
users/simark/arm-none-core-fileSupport for corefiles for arm-none-eabi target.fredrikhederstierna4 years
users/simark/autoconf-warningsgdbserver: replace AC_TRY_COMPILE in acinclude.m4Simon Marchi4 years
users/simark/autotools-bumpGenerated filesSimon Marchi7 years
users/simark/blackgdb: re-format Python files using black 21.4b0Simon Marchi4 years
users/simark/btrace-cleanupsbtrace: Remove ui_out cleanupsSimon Marchi7 years
users/simark/clang-formatRun clang-format.shSimon Marchi2 years
users/simark/fix-leading-whitespacegdb, gdbserver, gdbsupport: fix leading space vs tabs issuesSimon Marchi4 years
users/simark/fortrangdb/fortran: Allow for matching symbols with missing scopeAndrew Burgess5 years
users/simark/frame-debuggdb: add names to unwindersSimon Marchi4 years
users/simark/mi-symbols-outputHi AndrewSimon Marchi5 years
users/simark/ptid-in-fetch-store-regsPass ptid to to_prepare_to_storeSimon Marchi8 years
users/simark/refactor-typesafe-vargdb: Setting setter return a bool to tell if the value changedLancelot SIX4 years
users/simark/regcache-for-alanPtrace support for Aarch64 SVEAlan Hayward7 years
users/simark/regcache-multimap-v2Two-level mapSimon Marchi5 years
users/simark/split-dwarf2readMove DWARF index-related things to a separate fileSimon Marchi7 years
users/simark/submit/share-dwarf-partial-symtabs-v2Share DWARF partial symtabsTom Tromey5 years
users/simark/template-suffixDon't trust templates from DW_AT_nameSimon Marchi7 years
users/simark/testtest test 12 12Simon Marchi5 years
users/simark/try-cxx-hash-tableConvert dwarf2_per_objfile::die_type_hash to new hash tableSimon Marchi7 months
users/simark/try-gdbserver-unordered-mapgdbserver: use `gdb::unordered_map`Simon Marchi3 months
users/simark/try-remove-unused-includes-tuigdb: cleanup includes in tui/Simon Marchi9 months
users/simark/try-remove-vlagdb, gdbserver, gdbsupport: remove -Wno-vla-cxx-extensionSimon Marchi11 months
users/simark/try-remove-vlasgdb, gdbserver, gdbsupport: remove -Wno-vla-cxx-extensionSimon Marchi7 months
users/simark/try-remove-vlas-2gdb, gdbserver, gdbsupport: remove -Wno-vla-cxx-extensionSimon Marchi7 months
users/simark/update-gnulibgnulib: update to 776af40e0Paul E. Murphy4 years
users/simark/user-selection-rfcDecouple user selection from internal selectionSimon Marchi8 years
users/ssbssa/pdb-reader-previewPDB: Increase maximum number of "aclass" registrationsHannes Domani3 years
users/tromey/readline-8.1-updateFix Readline 8.1 build on mingwTom Tromey4 years
users/vapier/gdb/fdpicsMike Frysinger2 years
users/vapier/sim/amsim: aarch64: remove recursive make entirelyMike Frysinger2 years
users/vapier/sim/bfinsim: bfin: initial bf60x supportMike Frysinger14 months
users/vapier/sim/cpu-uni[wip] always compile in cgen logicMike Frysinger2 years
users/vapier/sim/docsim: ppc: always compile in the sysv sem & shm device filesMike Frysinger14 months
users/vapier/sim/gnulibsim: use gnulib to set nonblocking modeMike Frysinger14 months
users/vapier/sim/gnulib-buildsim: use build-gnulib with build-time tools [PR sim/30882]Mike Frysinger14 months
users/vapier/sim/ppcsim: ppc: drop old dgen.c generatorMike Frysinger2 years
users/vries/lazy-symtab-expansion[gdb/symtab] Add reset_compunit_symtabTom de Vries4 years
users/vries/process-queue-parallel[gdb/symtab] Use task size in parallel for in process_queueTom de Vries3 years
users/weimin/ctfSync up gdb with latest gcc and binutilsWeimin Pan5 years
users/wtedesch/icc_versionicc: allow code path for newer versions of icc.Walfred Tedeschi7 years
users/zaric/location_on_dwarf_stackAdd support for new DWARF overlay operationsZoran Zaric2 years
users/zoran/allow-location-description-on-dwarf-stackAdd support for nested composite locationsZoran Zaric4 years
 
TagDownloadAuthorAge
binutils-2_44gdb-binutils-2_44.zip  gdb-binutils-2_44.tar.gz  gdb-binutils-2_44.tar.bz2  Nick Clifton5 weeks
gdb-16.2-releasegdb-16.2-release.zip  gdb-16.2-release.tar.gz  gdb-16.2-release.tar.bz2  Joel Brobecker5 weeks
gdb-16.1-releasegdb-16.1-release.zip  gdb-16.1-release.tar.gz  gdb-16.1-release.tar.bz2  Joel Brobecker7 weeks
gdb-16-branchpointgdb-16-branchpoint.zip  gdb-16-branchpoint.tar.gz  gdb-16-branchpoint.tar.bz2  Joel Brobecker2 months
gdb-15.2-releasegdb-15.2-release.zip  gdb-15.2-release.tar.gz  gdb-15.2-release.tar.bz2  Joel Brobecker5 months
binutils-2_43_1gdb-binutils-2_43_1.zip  gdb-binutils-2_43_1.tar.gz  gdb-binutils-2_43_1.tar.bz2  Nick Clifton7 months
binutils-2_43gdb-binutils-2_43.zip  gdb-binutils-2_43.tar.gz  gdb-binutils-2_43.tar.bz2  Nick Clifton7 months
gdb-15.1-releasegdb-15.1-release.zip  gdb-15.1-release.tar.gz  gdb-15.1-release.tar.bz2  Joel Brobecker8 months
gdb-15-branchpointgdb-15-branchpoint.zip  gdb-15-branchpoint.tar.gz  gdb-15-branchpoint.tar.bz2  Joel Brobecker9 months
gdb-14.2-releasegdb-14.2-release.zip  gdb-14.2-release.tar.gz  gdb-14.2-release.tar.bz2  Joel Brobecker12 months
binutils-2_42gdb-binutils-2_42.zip  gdb-binutils-2_42.tar.gz  gdb-binutils-2_42.tar.bz2  Nick Clifton13 months
gdb-14.1-releasegdb-14.1-release.zip  gdb-14.1-release.tar.gz  gdb-14.1-release.tar.bz2  Joel Brobecker15 months
gdb-14-branchpointgdb-14-branchpoint.zip  gdb-14-branchpoint.tar.gz  gdb-14-branchpoint.tar.bz2  Joel Brobecker17 months
binutils-2_41-releasegdb-binutils-2_41-release.zip  gdb-binutils-2_41-release.tar.gz  gdb-binutils-2_41-release.tar.bz2  Nick Clifton19 months
binutils-2_41gdb-binutils-2_41.zip  gdb-binutils-2_41.tar.gz  gdb-binutils-2_41.tar.bz2  Nick Clifton19 months
gdb-13.2-releasegdb-13.2-release.zip  gdb-13.2-release.tar.gz  gdb-13.2-release.tar.bz2  Joel Brobecker21 months
gdb-13.1-releasegdb-13.1-release.zip  gdb-13.1-release.tar.gz  gdb-13.1-release.tar.bz2  Joel Brobecker2 years
binutils-2_40gdb-binutils-2_40.zip  gdb-binutils-2_40.tar.gz  gdb-binutils-2_40.tar.bz2  Nick Clifton2 years
gdb-13-branchpointgdb-13-branchpoint.zip  gdb-13-branchpoint.tar.gz  gdb-13-branchpoint.tar.bz2  Joel Brobecker2 years
gdb_7_6-branchpointgdb_7_6-branchpoint.zip  gdb_7_6-branchpoint.tar.gz  gdb_7_6-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_7_5-branchpointgdb_7_5-branchpoint.zip  gdb_7_5-branchpoint.tar.gz  gdb_7_5-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_7_4-branchpointgdb_7_4-branchpoint.zip  gdb_7_4-branchpoint.tar.gz  gdb_7_4-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_7_3-branchpointgdb_7_3-branchpoint.zip  gdb_7_3-branchpoint.tar.gz  gdb_7_3-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_7_2-branchpointgdb_7_2-branchpoint.zip  gdb_7_2-branchpoint.tar.gz  gdb_7_2-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_7_1-branchpointgdb_7_1-branchpoint.zip  gdb_7_1-branchpoint.tar.gz  gdb_7_1-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_7_0-branchpointgdb_7_0-branchpoint.zip  gdb_7_0-branchpoint.tar.gz  gdb_7_0-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_8-branchpointgdb_6_8-branchpoint.zip  gdb_6_8-branchpoint.tar.gz  gdb_6_8-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_7-branchpointgdb_6_7-branchpoint.zip  gdb_6_7-branchpoint.tar.gz  gdb_6_7-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_6-branchpointgdb_6_6-branchpoint.zip  gdb_6_6-branchpoint.tar.gz  gdb_6_6-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_5-branchpointgdb_6_5-branchpoint.zip  gdb_6_5-branchpoint.tar.gz  gdb_6_5-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_4-branchpointgdb_6_4-branchpoint.zip  gdb_6_4-branchpoint.tar.gz  gdb_6_4-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_3-branchpointgdb_6_3-branchpoint.zip  gdb_6_3-branchpoint.tar.gz  gdb_6_3-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_2-branchpointgdb_6_2-branchpoint.zip  gdb_6_2-branchpoint.tar.gz  gdb_6_2-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_1-branchpointgdb_6_1-branchpoint.zip  gdb_6_1-branchpoint.tar.gz  gdb_6_1-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_6_0-branchpointgdb_6_0-branchpoint.zip  gdb_6_0-branchpoint.tar.gz  gdb_6_0-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_5_3-branchpointgdb_5_3-branchpoint.zip  gdb_5_3-branchpoint.tar.gz  gdb_5_3-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb_5_2-branchpointgdb_5_2-branchpoint.zip  gdb_5_2-branchpoint.tar.gz  gdb_5_2-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-9-branchpointgdb-9-branchpoint.zip  gdb-9-branchpoint.tar.gz  gdb-9-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-8.3-branchpointgdb-8.3-branchpoint.zip  gdb-8.3-branchpoint.tar.gz  gdb-8.3-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-8.2-branchpointgdb-8.2-branchpoint.zip  gdb-8.2-branchpoint.tar.gz  gdb-8.2-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-8.1-branchpointgdb-8.1-branchpoint.zip  gdb-8.1-branchpoint.tar.gz  gdb-8.1-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-8.0-branchpointgdb-8.0-branchpoint.zip  gdb-8.0-branchpoint.tar.gz  gdb-8.0-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-7.9-branchpointgdb-7.9-branchpoint.zip  gdb-7.9-branchpoint.tar.gz  gdb-7.9-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-7.8-branchpointgdb-7.8-branchpoint.zip  gdb-7.8-branchpoint.tar.gz  gdb-7.8-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-7.7-branchpointgdb-7.7-branchpoint.zip  gdb-7.7-branchpoint.tar.gz  gdb-7.7-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-7.12-branchpointgdb-7.12-branchpoint.zip  gdb-7.12-branchpoint.tar.gz  gdb-7.12-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-7.11-branchpointgdb-7.11-branchpoint.zip  gdb-7.11-branchpoint.tar.gz  gdb-7.11-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-7.10-branchpointgdb-7.10-branchpoint.zip  gdb-7.10-branchpoint.tar.gz  gdb-7.10-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-4_18-branchpointgdb-4_18-branchpoint.zip  gdb-4_18-branchpoint.tar.gz  gdb-4_18-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-12-branchpointgdb-12-branchpoint.zip  gdb-12-branchpoint.tar.gz  gdb-12-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-11-branchpointgdb-11-branchpoint.zip  gdb-11-branchpoint.tar.gz  gdb-11-branchpoint.tar.bz2  Frank Ch. Eigler3 years
gdb-10-branchpointgdb-10-branchpoint.zip  gdb-10-branchpoint.tar.gz  gdb-10-branchpoint.tar.bz2  Frank Ch. Eigler3 years
binutils-2_39gdb-binutils-2_39.zip  gdb-binutils-2_39.tar.gz  gdb-binutils-2_39.tar.bz2  Nick Clifton3 years
gdb-12.1-releasegdb-12.1-release.zip  gdb-12.1-release.tar.gz  gdb-12.1-release.tar.bz2  Joel Brobecker3 years
binutils-2_38gdb-binutils-2_38.zip  gdb-binutils-2_38.tar.gz  gdb-binutils-2_38.tar.bz2  Nick Clifton3 years
gdb-11.2-releasegdb-11.2-release.zip  gdb-11.2-release.tar.gz  gdb-11.2-release.tar.bz2  Joel Brobecker3 years
gdb-11.1-releasegdb-11.1-release.zip  gdb-11.1-release.tar.gz  gdb-11.1-release.tar.bz2  Joel Brobecker3 years
binutils-2_37gdb-binutils-2_37.zip  gdb-binutils-2_37.tar.gz  gdb-binutils-2_37.tar.bz2  Nick Clifton4 years
gdb-10.2-releasegdb-10.2-release.zip  gdb-10.2-release.tar.gz  gdb-10.2-release.tar.bz2  Joel Brobecker4 years
binutils-2_36_1gdb-binutils-2_36_1.zip  gdb-binutils-2_36_1.tar.gz  gdb-binutils-2_36_1.tar.bz2  Nick Clifton4 years
binutils-2_35_2gdb-binutils-2_35_2.zip  gdb-binutils-2_35_2.tar.gz  gdb-binutils-2_35_2.tar.bz2  Nick Clifton4 years
binutils-2_36gdb-binutils-2_36.zip  gdb-binutils-2_36.tar.gz  gdb-binutils-2_36.tar.bz2  Nick Clifton4 years
gdb-10.1-releasegdb-10.1-release.zip  gdb-10.1-release.tar.gz  gdb-10.1-release.tar.bz2  Joel Brobecker4 years
binutils-2_35_1gdb-binutils-2_35_1.zip  gdb-binutils-2_35_1.tar.gz  gdb-binutils-2_35_1.tar.bz2  Nick Clifton4 years
binutils-2_35gdb-binutils-2_35.zip  gdb-binutils-2_35.tar.gz  gdb-binutils-2_35.tar.bz2  Nick Clifton5 years
gdb-9.2-releasegdb-9.2-release.zip  gdb-9.2-release.tar.gz  gdb-9.2-release.tar.bz2  Joel Brobecker5 years
gdb-9.1-releasegdb-9.1-release.zip  gdb-9.1-release.tar.gz  gdb-9.1-release.tar.bz2  Joel Brobecker5 years
binutils-2_34gdb-binutils-2_34.zip  gdb-binutils-2_34.tar.gz  gdb-binutils-2_34.tar.bz2  Nick Clifton5 years
binutils-2_33_1gdb-binutils-2_33_1.zip  gdb-binutils-2_33_1.tar.gz  gdb-binutils-2_33_1.tar.bz2  Nick Clifton5 years
binutils-2_33gdb-binutils-2_33.zip  gdb-binutils-2_33.tar.gz  gdb-binutils-2_33.tar.bz2  Phil Blundell5 years
gdb-8.3.1-releasegdb-8.3.1-release.zip  gdb-8.3.1-release.tar.gz  gdb-8.3.1-release.tar.bz2  Joel Brobecker5 years
gdb-8.3-releasegdb-8.3-release.zip  gdb-8.3-release.tar.gz  gdb-8.3-release.tar.bz2  Joel Brobecker6 years
binutils-2_32gdb-binutils-2_32.zip  gdb-binutils-2_32.tar.gz  gdb-binutils-2_32.tar.bz2  Nick Clifton6 years
gdb-8.2.1-releasegdb-8.2.1-release.zip  gdb-8.2.1-release.tar.gz  gdb-8.2.1-release.tar.bz2  Joel Brobecker6 years
users/ARM/embedded-gdb-master-2018q4gdb-users/ARM/embedded-gdb-master-2018q4.zip  gdb-users/ARM/embedded-gdb-master-2018q4.tar.gz  gdb-users/ARM/embedded-gdb-master-2018q4.tar.bz2  Andre Vieira6 years
users/ARM/embedded-binutils-master-2018q4gdb-users/ARM/embedded-binutils-master-2018q4.zip  gdb-users/ARM/embedded-binutils-master-2018q4.tar.gz  gdb-users/ARM/embedded-binutils-master-2018q4.tar.bz2  Andre Vieira6 years
gdb-8.2-releasegdb-8.2-release.zip  gdb-8.2-release.tar.gz  gdb-8.2-release.tar.bz2  Joel Brobecker7 years
gdb-8.1.1-releasegdb-8.1.1-release.zip  gdb-8.1.1-release.tar.gz  gdb-8.1.1-release.tar.bz2  Joel Brobecker7 years
binutils-2_31_1gdb-binutils-2_31_1.zip  gdb-binutils-2_31_1.tar.gz  gdb-binutils-2_31_1.tar.bz2  Nick Clifton7 years
binutils-2_31gdb-binutils-2_31.zip  gdb-binutils-2_31.tar.gz  gdb-binutils-2_31.tar.bz2  Nick Clifton7 years
users/ARM/embedded-gdb-8.1-branch-2018q2gdb-users/ARM/embedded-gdb-8.1-branch-2018q2.zip  gdb-users/ARM/embedded-gdb-8.1-branch-2018q2.tar.gz  gdb-users/ARM/embedded-gdb-8.1-branch-2018q2.tar.bz2  Thomas Preud'homme7 years
users/ARM/embedded-binutils-2_30-branch-2018q2gdb-users/ARM/embedded-binutils-2_30-branch-2018q2.zip  gdb-users/ARM/embedded-binutils-2_30-branch-2018q2.tar.gz  gdb-users/ARM/embedded-binutils-2_30-branch-2018q2.tar.bz2  Thomas Preud'homme7 years
users/gbenson/thread_db-test/2018-05-23gdb-users/gbenson/thread_db-test/2018-05-23.zip  gdb-users/gbenson/thread_db-test/2018-05-23.tar.gz  gdb-users/gbenson/thread_db-test/2018-05-23.tar.bz2  Gary Benson7 years
users/gbenson/thread_db-test/2017-11-22gdb-users/gbenson/thread_db-test/2017-11-22.zip  gdb-users/gbenson/thread_db-test/2017-11-22.tar.gz  gdb-users/gbenson/thread_db-test/2017-11-22.tar.bz2  Gary Benson7 years
gdb-8.1-releasegdb-8.1-release.zip  gdb-8.1-release.tar.gz  gdb-8.1-release.tar.bz2  Joel Brobecker7 years
binutils-2_30gdb-binutils-2_30.zip  gdb-binutils-2_30.tar.gz  gdb-binutils-2_30.tar.bz2  Nick Clifton7 years
users/hjl/linux/release/2.29.51.0.1gdb-users/hjl/linux/release/2.29.51.0.1.zip  gdb-users/hjl/linux/release/2.29.51.0.1.tar.gz  gdb-users/hjl/linux/release/2.29.51.0.1.tar.bz2  H.J. Lu7 years
users/ARM/embedded-gdb-master-2017q4gdb-users/ARM/embedded-gdb-master-2017q4.zip  gdb-users/ARM/embedded-gdb-master-2017q4.tar.gz  gdb-users/ARM/embedded-gdb-master-2017q4.tar.bz2  Thomas Preud'homme7 years
users/ARM/embedded-binutils-master-2017q4gdb-users/ARM/embedded-binutils-master-2017q4.zip  gdb-users/ARM/embedded-binutils-master-2017q4.tar.gz  gdb-users/ARM/embedded-binutils-master-2017q4.tar.bz2  Thomas Preud'homme7 years
binutils-2_29_1.1gdb-binutils-2_29_1.1.zip  gdb-binutils-2_29_1.1.tar.gz  gdb-binutils-2_29_1.1.tar.bz2  Nick Clifton7 years
binutils-2_29_1gdb-binutils-2_29_1.zip  gdb-binutils-2_29_1.tar.gz  gdb-binutils-2_29_1.tar.bz2  Nick Clifton7 years
gdb-8.0.1-releasegdb-8.0.1-release.zip  gdb-8.0.1-release.tar.gz  gdb-8.0.1-release.tar.bz2  Joel Brobecker8 years
hjl/gpoff-backupgdb-hjl/gpoff-backup.zip  gdb-hjl/gpoff-backup.tar.gz  gdb-hjl/gpoff-backup.tar.bz2  H.J. Lu8 years
binutils-2_29gdb-binutils-2_29.zip  gdb-binutils-2_29.tar.gz  gdb-binutils-2_29.tar.bz2  Tristan Gingold8 years
users/hjl/linux/release/2.28.51.0.1gdb-users/hjl/linux/release/2.28.51.0.1.zip  gdb-users/hjl/linux/release/2.28.51.0.1.tar.gz  gdb-users/hjl/linux/release/2.28.51.0.1.tar.bz2  H.J. Lu8 years
users/ARM/embedded-gdb-7.12-branch-2017q2gdb-users/ARM/embedded-gdb-7.12-branch-2017q2.zip  gdb-users/ARM/embedded-gdb-7.12-branch-2017q2.tar.gz  gdb-users/ARM/embedded-gdb-7.12-branch-2017q2.tar.bz2  Thomas Preud'homme8 years
users/ARM/embedded-binutils-2_28-branch-2017q2gdb-users/ARM/embedded-binutils-2_28-branch-2017q2.zip  gdb-users/ARM/embedded-binutils-2_28-branch-2017q2.tar.gz  gdb-users/ARM/embedded-binutils-2_28-branch-2017q2.tar.bz2  Thomas Preud'homme8 years
gdb-8.0-releasegdb-8.0-release.zip  gdb-8.0-release.tar.gz  gdb-8.0-release.tar.bz2  Joel Brobecker8 years
binutils-2_28gdb-binutils-2_28.zip  gdb-binutils-2_28.tar.gz  gdb-binutils-2_28.tar.bz2  Tristan Gingold8 years
users/ARM/embedded-gdb-7.12-branch-2017q1gdb-users/ARM/embedded-gdb-7.12-branch-2017q1.zip  gdb-users/ARM/embedded-gdb-7.12-branch-2017q1.tar.gz  gdb-users/ARM/embedded-gdb-7.12-branch-2017q1.tar.bz2  Thomas Preud'homme8 years
users/ARM/embedded-binutils-2_28-branch-2017q1gdb-users/ARM/embedded-binutils-2_28-branch-2017q1.zip  gdb-users/ARM/embedded-binutils-2_28-branch-2017q1.tar.gz  gdb-users/ARM/embedded-binutils-2_28-branch-2017q1.tar.bz2  Thomas Preud'homme8 years
gdb-7.12.1-releasegdb-7.12.1-release.zip  gdb-7.12.1-release.tar.gz  gdb-7.12.1-release.tar.bz2  Joel Brobecker8 years
users/ARM/embedded-gdb-7.12-branch-2016q4gdb-users/ARM/embedded-gdb-7.12-branch-2016q4.zip  gdb-users/ARM/embedded-gdb-7.12-branch-2016q4.tar.gz  gdb-users/ARM/embedded-gdb-7.12-branch-2016q4.tar.bz2  Thomas Preud'homme8 years
users/ARM/embedded-binutils-master-2016q4gdb-users/ARM/embedded-binutils-master-2016q4.zip  gdb-users/ARM/embedded-binutils-master-2016q4.tar.gz  gdb-users/ARM/embedded-binutils-master-2016q4.tar.bz2  Thomas Preud'homme8 years
gdb-7.12-releasegdb-7.12-release.zip  gdb-7.12-release.tar.gz  gdb-7.12-release.tar.bz2  Joel Brobecker8 years
users/ARM/embedded-gdb-7.10-branch-2016q3gdb-users/ARM/embedded-gdb-7.10-branch-2016q3.zip  gdb-users/ARM/embedded-gdb-7.10-branch-2016q3.tar.gz  gdb-users/ARM/embedded-gdb-7.10-branch-2016q3.tar.bz2  Thomas Preud'homme8 years
users/ARM/embedded-binutils-2_26-branch-2016q3gdb-users/ARM/embedded-binutils-2_26-branch-2016q3.zip  gdb-users/ARM/embedded-binutils-2_26-branch-2016q3.tar.gz  gdb-users/ARM/embedded-binutils-2_26-branch-2016q3.tar.bz2  Thomas Preud'homme8 years
binutils-2_27gdb-binutils-2_27.zip  gdb-binutils-2_27.tar.gz  gdb-binutils-2_27.tar.bz2  Tristan Gingold9 years
users/hjl/linux/release/2.26.51.0.2gdb-users/hjl/linux/release/2.26.51.0.2.zip  gdb-users/hjl/linux/release/2.26.51.0.2.tar.gz  gdb-users/hjl/linux/release/2.26.51.0.2.tar.bz2  H.J. Lu9 years
binutils-2_26_1gdb-binutils-2_26_1.zip  gdb-binutils-2_26_1.tar.gz  gdb-binutils-2_26_1.tar.bz2  Tristan Gingold9 years
users/ARM/embedded-gdb-7.10-branch-2016q2gdb-users/ARM/embedded-gdb-7.10-branch-2016q2.zip  gdb-users/ARM/embedded-gdb-7.10-branch-2016q2.tar.gz  gdb-users/ARM/embedded-gdb-7.10-branch-2016q2.tar.bz2  Thomas Preud'homme9 years
users/ARM/embedded-binutils-2_26-branch-2016q2gdb-users/ARM/embedded-binutils-2_26-branch-2016q2.zip  gdb-users/ARM/embedded-binutils-2_26-branch-2016q2.tar.gz  gdb-users/ARM/embedded-binutils-2_26-branch-2016q2.tar.bz2  Thomas Preud'homme9 years
users/ARM/embedded-gdb-2_26-branch-2016q1gdb-users/ARM/embedded-gdb-2_26-branch-2016q1.zip  gdb-users/ARM/embedded-gdb-2_26-branch-2016q1.tar.gz  gdb-users/ARM/embedded-gdb-2_26-branch-2016q1.tar.bz2  Thomas Preud'homme9 years
gdb-7.11.1-releasegdb-7.11.1-release.zip  gdb-7.11.1-release.tar.gz  gdb-7.11.1-release.tar.bz2  Joel Brobecker9 years
users/ARM/embedded-gdb-7.10-branch-2016q1gdb-users/ARM/embedded-gdb-7.10-branch-2016q1.zip  gdb-users/ARM/embedded-gdb-7.10-branch-2016q1.tar.gz  gdb-users/ARM/embedded-gdb-7.10-branch-2016q1.tar.bz2  Andre Simoes Dias Vieira9 years
users/ARM/users/ARM/embedded-gdb-2_26-branch-2016q1gdb-users/ARM/users/ARM/embedded-gdb-2_26-branch-2016q1.zip  gdb-users/ARM/users/ARM/embedded-gdb-2_26-branch-2016q1.tar.gz  gdb-users/ARM/users/ARM/embedded-gdb-2_26-branch-2016q1.tar.bz2  Andre Simoes Dias Vieira9 years
users/ARM/embedded-binutils-2_26-branch-2016q1gdb-users/ARM/embedded-binutils-2_26-branch-2016q1.zip  gdb-users/ARM/embedded-binutils-2_26-branch-2016q1.tar.gz  gdb-users/ARM/embedded-binutils-2_26-branch-2016q1.tar.bz2  Andre Simoes Dias Vieira9 years
users/hjl/linux/release/2.26.51.0.1gdb-users/hjl/linux/release/2.26.51.0.1.zip  gdb-users/hjl/linux/release/2.26.51.0.1.tar.gz  gdb-users/hjl/linux/release/2.26.51.0.1.tar.bz2  H.J. Lu9 years
gdb-7.11-releasegdb-7.11-release.zip  gdb-7.11-release.tar.gz  gdb-7.11-release.tar.bz2  Joel Brobecker9 years
binutils-2_26gdb-binutils-2_26.zip  gdb-binutils-2_26.tar.gz  gdb-binutils-2_26.tar.bz2  Tristan Gingold9 years
gdb-7.10.1-releasegdb-7.10.1-release.zip  gdb-7.10.1-release.tar.gz  gdb-7.10.1-release.tar.bz2  Joel Brobecker9 years
users/hjl/linux/release/2.25.51.0.4gdb-users/hjl/linux/release/2.25.51.0.4.zip  gdb-users/hjl/linux/release/2.25.51.0.4.tar.gz  gdb-users/hjl/linux/release/2.25.51.0.4.tar.bz2  H.J. Lu9 years
gdb-7.10-releasegdb-7.10-release.zip  gdb-7.10-release.tar.gz  gdb-7.10-release.tar.bz2  Joel Brobecker10 years
binutils-2_25_1gdb-binutils-2_25_1.zip  gdb-binutils-2_25_1.tar.gz  gdb-binutils-2_25_1.tar.bz2  Tristan Gingold10 years
users/hjl/linux/release/2.25.51.0.3gdb-users/hjl/linux/release/2.25.51.0.3.zip  gdb-users/hjl/linux/release/2.25.51.0.3.tar.gz  gdb-users/hjl/linux/release/2.25.51.0.3.tar.bz2  H.J. Lu10 years
users/hjl/linux/release/2.25.51.0.2gdb-users/hjl/linux/release/2.25.51.0.2.zip  gdb-users/hjl/linux/release/2.25.51.0.2.tar.gz  gdb-users/hjl/linux/release/2.25.51.0.2.tar.bz2  H.J. Lu10 years
gdb-7.9.1-releasegdb-7.9.1-release.zip  gdb-7.9.1-release.tar.gz  gdb-7.9.1-release.tar.bz2  Joel Brobecker10 years
gdb-7.9.0-releasegdb-7.9.0-release.zip  gdb-7.9.0-release.tar.gz  gdb-7.9.0-release.tar.bz2  Joel Brobecker10 years
gdb-7.8.2-releasegdb-7.8.2-release.zip  gdb-7.8.2-release.tar.gz  gdb-7.8.2-release.tar.bz2  Joel Brobecker10 years
hjl/linux/release/2.25.51.0.1gdb-hjl/linux/release/2.25.51.0.1.zip  gdb-hjl/linux/release/2.25.51.0.1.tar.gz  gdb-hjl/linux/release/2.25.51.0.1.tar.bz2  H.J. Lu10 years
binutils-2_25gdb-binutils-2_25.zip  gdb-binutils-2_25.tar.gz  gdb-binutils-2_25.tar.bz2  Tristan Gingold10 years
gdb-7.8.1-releasegdb-7.8.1-release.zip  gdb-7.8.1-release.tar.gz  gdb-7.8.1-release.tar.bz2  Joel Brobecker10 years
hjl/linux/release/2.24.51.0.4gdb-hjl/linux/release/2.24.51.0.4.zip  gdb-hjl/linux/release/2.24.51.0.4.tar.gz  gdb-hjl/linux/release/2.24.51.0.4.tar.bz2  H.J. Lu10 years
gdb-7.8-releasegdb-7.8-release.zip  gdb-7.8-release.tar.gz  gdb-7.8-release.tar.bz2  Joel Brobecker11 years
gdb-7.7.1-releasegdb-7.7.1-release.zip  gdb-7.7.1-release.tar.gz  gdb-7.7.1-release.tar.bz2  Joel Brobecker11 years
gdb-7.7-releasegdb-7.7-release.zip  gdb-7.7-release.tar.gz  gdb-7.7-release.tar.bz2  Joel Brobecker11 years
hjl/linux/release/2.24.51.0.3gdb-hjl/linux/release/2.24.51.0.3.zip  gdb-hjl/linux/release/2.24.51.0.3.tar.gz  gdb-hjl/linux/release/2.24.51.0.3.tar.bz2  H.J. Lu11 years
hjl/linux/release/2.24.51.0.2gdb-hjl/linux/release/2.24.51.0.2.zip  gdb-hjl/linux/release/2.24.51.0.2.tar.gz  gdb-hjl/linux/release/2.24.51.0.2.tar.bz2  H.J. Lu11 years
gdb_7_6_2-2013-12-08-releasegdb_7_6_2-2013-12-08-release.zip  gdb_7_6_2-2013-12-08-release.tar.gz  gdb_7_6_2-2013-12-08-release.tar.bz2  Joel Brobecker11 years
binutils-2_24gdb-binutils-2_24.zip  gdb-binutils-2_24.tar.gz  gdb-binutils-2_24.tar.bz2  Tristan Gingold11 years
hjl/linux/release/2.24.51.0.1gdb-hjl/linux/release/2.24.51.0.1.zip  gdb-hjl/linux/release/2.24.51.0.1.tar.gz  gdb-hjl/linux/release/2.24.51.0.1.tar.bz2  H.J. Lu11 years
binutils_latest_snapshotgdb-binutils_latest_snapshot.zip  gdb-binutils_latest_snapshot.tar.gz  gdb-binutils_latest_snapshot.tar.bz2  nobody11 years
sid-snapshot-20131001gdb-sid-snapshot-20131001.zip  gdb-sid-snapshot-20131001.tar.gz  gdb-sid-snapshot-20131001.tar.bz2  nobody11 years
cgen-snapshot-20131001gdb-cgen-snapshot-20131001.zip  gdb-cgen-snapshot-20131001.tar.gz  gdb-cgen-snapshot-20131001.tar.bz2  nobody11 years
sid-snapshot-20130901gdb-sid-snapshot-20130901.zip  gdb-sid-snapshot-20130901.tar.gz  gdb-sid-snapshot-20130901.tar.bz2  nobody11 years
cygwin-1_7_25-releasegdb-cygwin-1_7_25-release.zip  gdb-cygwin-1_7_25-release.tar.gz  gdb-cygwin-1_7_25-release.tar.bz2  nobody11 years
cygwin-1_7_24-releasegdb-cygwin-1_7_24-release.zip  gdb-cygwin-1_7_24-release.tar.gz  gdb-cygwin-1_7_24-release.tar.bz2  nobody11 years
cgen-snapshot-20130901gdb-cgen-snapshot-20130901.zip  gdb-cgen-snapshot-20130901.tar.gz  gdb-cgen-snapshot-20130901.tar.bz2  nobody11 years
cgen-snapshot-20130801gdb-cgen-snapshot-20130801.zip  gdb-cgen-snapshot-20130801.tar.gz  gdb-cgen-snapshot-20130801.tar.bz2  nobody11 years
cgen-snapshot-20130701gdb-cgen-snapshot-20130701.zip  gdb-cgen-snapshot-20130701.tar.gz  gdb-cgen-snapshot-20130701.tar.bz2  nobody11 years
cgen-snapshot-20130601gdb-cgen-snapshot-20130601.zip  gdb-cgen-snapshot-20130601.tar.gz  gdb-cgen-snapshot-20130601.tar.bz2  nobody11 years
cgen-snapshot-20130501gdb-cgen-snapshot-20130501.zip  gdb-cgen-snapshot-20130501.tar.gz  gdb-cgen-snapshot-20130501.tar.bz2  nobody11 years
binutils-2_24-branchpointgdb-binutils-2_24-branchpoint.zip  gdb-binutils-2_24-branchpoint.tar.gz  gdb-binutils-2_24-branchpoint.tar.bz2  nobody11 years
gdb_7_6_1-2013-08-30-releasegdb_7_6_1-2013-08-30-release.zip  gdb_7_6_1-2013-08-30-release.tar.gz  gdb_7_6_1-2013-08-30-release.tar.bz2  gdbadmin12 years
sid-snapshot-20130801gdb-sid-snapshot-20130801.zip  gdb-sid-snapshot-20130801.tar.gz  gdb-sid-snapshot-20130801.tar.bz2  nobody12 years
cygwin-1_7_23-releasegdb-cygwin-1_7_23-release.zip  gdb-cygwin-1_7_23-release.tar.gz  gdb-cygwin-1_7_23-release.tar.bz2  nobody12 years
cygwin-1_7_22-releasegdb-cygwin-1_7_22-release.zip  gdb-cygwin-1_7_22-release.tar.gz  gdb-cygwin-1_7_22-release.tar.bz2  nobody12 years
cygwin-1_7_21-releasegdb-cygwin-1_7_21-release.zip  gdb-cygwin-1_7_21-release.tar.gz  gdb-cygwin-1_7_21-release.tar.bz2  nobody12 years
sid-snapshot-20130701gdb-sid-snapshot-20130701.zip  gdb-sid-snapshot-20130701.tar.gz  gdb-sid-snapshot-20130701.tar.bz2  nobody12 years
cygwin-1_7_20-releasegdb-cygwin-1_7_20-release.zip  gdb-cygwin-1_7_20-release.tar.gz  gdb-cygwin-1_7_20-release.tar.bz2  nobody12 years
sid-snapshot-20130601gdb-sid-snapshot-20130601.zip  gdb-sid-snapshot-20130601.tar.gz  gdb-sid-snapshot-20130601.tar.bz2  nobody12 years
cygwin-1_7_19-releasegdb-cygwin-1_7_19-release.zip  gdb-cygwin-1_7_19-release.tar.gz  gdb-cygwin-1_7_19-release.tar.bz2  nobody12 years
sid-snapshot-20130501gdb-sid-snapshot-20130501.zip  gdb-sid-snapshot-20130501.tar.gz  gdb-sid-snapshot-20130501.tar.bz2  nobody12 years
gdb_7_6-2013-04-26-releasegdb_7_6-2013-04-26-release.zip  gdb_7_6-2013-04-26-release.tar.gz  gdb_7_6-2013-04-26-release.tar.bz2  Joel Brobecker12 years
cygwin-64bit-postmergegdb-cygwin-64bit-postmerge.zip  gdb-cygwin-64bit-postmerge.tar.gz  gdb-cygwin-64bit-postmerge.tar.bz2  nobody12 years
cygwin-1_7_18-releasegdb-cygwin-1_7_18-release.zip  gdb-cygwin-1_7_18-release.tar.gz  gdb-cygwin-1_7_18-release.tar.bz2  nobody12 years
cygwin-64bit-premergegdb-cygwin-64bit-premerge.zip  gdb-cygwin-64bit-premerge.tar.gz  gdb-cygwin-64bit-premerge.tar.bz2  nobody12 years
sid-snapshot-20130401gdb-sid-snapshot-20130401.zip  gdb-sid-snapshot-20130401.tar.gz  gdb-sid-snapshot-20130401.tar.bz2  nobody12 years
binutils-2_23_2gdb-binutils-2_23_2.zip  gdb-binutils-2_23_2.tar.gz  gdb-binutils-2_23_2.tar.bz2  Tristan Gingold12 years
cgen-snapshot-20130401gdb-cgen-snapshot-20130401.zip  gdb-cgen-snapshot-20130401.tar.gz  gdb-cgen-snapshot-20130401.tar.bz2  nobody12 years
newlib-2_0_0gdb-newlib-2_0_0.zip  gdb-newlib-2_0_0.tar.gz  gdb-newlib-2_0_0.tar.bz2  nobody12 years
cgen-snapshot-20130301gdb-cgen-snapshot-20130301.zip  gdb-cgen-snapshot-20130301.tar.gz  gdb-cgen-snapshot-20130301.tar.bz2  nobody12 years
cgen-snapshot-20130201gdb-cgen-snapshot-20130201.zip  gdb-cgen-snapshot-20130201.tar.gz  gdb-cgen-snapshot-20130201.tar.bz2  nobody12 years
gdb_7_6-2013-03-12-branchpointgdb_7_6-2013-03-12-branchpoint.zip  gdb_7_6-2013-03-12-branchpoint.tar.gz  gdb_7_6-2013-03-12-branchpoint.tar.bz2  nobody12 years
sid-snapshot-20130301gdb-sid-snapshot-20130301.zip  gdb-sid-snapshot-20130301.tar.gz  gdb-sid-snapshot-20130301.tar.bz2  nobody12 years
sid-snapshot-20130201gdb-sid-snapshot-20130201.zip  gdb-sid-snapshot-20130201.tar.gz  gdb-sid-snapshot-20130201.tar.bz2  nobody12 years
sid-snapshot-20130101gdb-sid-snapshot-20130101.zip  gdb-sid-snapshot-20130101.tar.gz  gdb-sid-snapshot-20130101.tar.bz2  nobody12 years
cgen-snapshot-20130101gdb-cgen-snapshot-20130101.zip  gdb-cgen-snapshot-20130101.tar.gz  gdb-cgen-snapshot-20130101.tar.bz2  nobody12 years
sid-snapshot-20121201gdb-sid-snapshot-20121201.zip  gdb-sid-snapshot-20121201.tar.gz  gdb-sid-snapshot-20121201.tar.bz2  nobody12 years
cgen-snapshot-20121201gdb-cgen-snapshot-20121201.zip  gdb-cgen-snapshot-20121201.tar.gz  gdb-cgen-snapshot-20121201.tar.bz2  nobody12 years
gdb_7_5_1-2012-11-29-releasegdb_7_5_1-2012-11-29-release.zip  gdb_7_5_1-2012-11-29-release.tar.gz  gdb_7_5_1-2012-11-29-release.tar.bz2  nobody12 years
binutils-2_23_1gdb-binutils-2_23_1.zip  gdb-binutils-2_23_1.tar.gz  gdb-binutils-2_23_1.tar.bz2  nobody12 years
sid-snapshot-20121101gdb-sid-snapshot-20121101.zip  gdb-sid-snapshot-20121101.tar.gz  gdb-sid-snapshot-20121101.tar.bz2  nobody12 years
cgen-snapshot-20121101gdb-cgen-snapshot-20121101.zip  gdb-cgen-snapshot-20121101.tar.gz  gdb-cgen-snapshot-20121101.tar.bz2  nobody12 years
binutils-2_23gdb-binutils-2_23.zip  gdb-binutils-2_23.tar.gz  gdb-binutils-2_23.tar.bz2  nobody12 years
cygwin-1_7_17-releasegdb-cygwin-1_7_17-release.zip  gdb-cygwin-1_7_17-release.tar.gz  gdb-cygwin-1_7_17-release.tar.bz2  nobody12 years
sid-snapshot-20121001gdb-sid-snapshot-20121001.zip  gdb-sid-snapshot-20121001.tar.gz  gdb-sid-snapshot-20121001.tar.bz2  nobody12 years
cgen-snapshot-20121001gdb-cgen-snapshot-20121001.zip  gdb-cgen-snapshot-20121001.tar.gz  gdb-cgen-snapshot-20121001.tar.bz2  nobody12 years
sid-snapshot-20120901gdb-sid-snapshot-20120901.zip  gdb-sid-snapshot-20120901.tar.gz  gdb-sid-snapshot-20120901.tar.bz2  nobody13 years
cgen-snapshot-20120901gdb-cgen-snapshot-20120901.zip  gdb-cgen-snapshot-20120901.tar.gz  gdb-cgen-snapshot-20120901.tar.bz2  nobody13 years
gdb_7_5-2012-08-17-releasegdb_7_5-2012-08-17-release.zip  gdb_7_5-2012-08-17-release.tar.gz  gdb_7_5-2012-08-17-release.tar.bz2  gdbadmin13 years
sid-snapshot-20120801gdb-sid-snapshot-20120801.zip  gdb-sid-snapshot-20120801.tar.gz  gdb-sid-snapshot-20120801.tar.bz2  nobody13 years
cgen-snapshot-20120801gdb-cgen-snapshot-20120801.zip  gdb-cgen-snapshot-20120801.tar.gz  gdb-cgen-snapshot-20120801.tar.bz2  nobody13 years
cgen-snapshot-20120701gdb-cgen-snapshot-20120701.zip  gdb-cgen-snapshot-20120701.tar.gz  gdb-cgen-snapshot-20120701.tar.bz2  nobody13 years
cgen-snapshot-20120601gdb-cgen-snapshot-20120601.zip  gdb-cgen-snapshot-20120601.tar.gz  gdb-cgen-snapshot-20120601.tar.bz2  nobody13 years
binutils-2_23-branchpointgdb-binutils-2_23-branchpoint.zip  gdb-binutils-2_23-branchpoint.tar.gz  gdb-binutils-2_23-branchpoint.tar.bz2  nobody13 years
cygwin-1_7_16-releasegdb-cygwin-1_7_16-release.zip  gdb-cygwin-1_7_16-release.tar.gz  gdb-cygwin-1_7_16-release.tar.bz2  nobody13 years
gdb_7_5-2012-07-18-branchpointgdb_7_5-2012-07-18-branchpoint.zip  gdb_7_5-2012-07-18-branchpoint.tar.gz  gdb_7_5-2012-07-18-branchpoint.tar.bz2  nobody13 years
sid-snapshot-20120701gdb-sid-snapshot-20120701.zip  gdb-sid-snapshot-20120701.tar.gz  gdb-sid-snapshot-20120701.tar.bz2  nobody13 years
sid-snapshot-20120601gdb-sid-snapshot-20120601.zip  gdb-sid-snapshot-20120601.tar.gz  gdb-sid-snapshot-20120601.tar.bz2  nobody13 years
cygwin-1_7_15-releasegdb-cygwin-1_7_15-release.zip  gdb-cygwin-1_7_15-release.tar.gz  gdb-cygwin-1_7_15-release.tar.bz2  nobody13 years
sid-snapshot-20120501gdb-sid-snapshot-20120501.zip  gdb-sid-snapshot-20120501.tar.gz  gdb-sid-snapshot-20120501.tar.bz2  nobody13 years
gdb_7_4_1-2012-04-26-releasegdb_7_4_1-2012-04-26-release.zip  gdb_7_4_1-2012-04-26-release.tar.gz  gdb_7_4_1-2012-04-26-release.tar.bz2  gdbadmin13 years
cgen-snapshot-20120501gdb-cgen-snapshot-20120501.zip  gdb-cgen-snapshot-20120501.tar.gz  gdb-cgen-snapshot-20120501.tar.bz2  nobody13 years
cygwin-1_7_14_2-releasegdb-cygwin-1_7_14_2-release.zip  gdb-cygwin-1_7_14_2-release.tar.gz  gdb-cygwin-1_7_14_2-release.tar.bz2  nobody13 years
cygwin-1_7_14-releasegdb-cygwin-1_7_14-release.zip  gdb-cygwin-1_7_14-release.tar.gz  gdb-cygwin-1_7_14-release.tar.bz2  nobody13 years
sid-snapshot-20120401gdb-sid-snapshot-20120401.zip  gdb-sid-snapshot-20120401.tar.gz  gdb-sid-snapshot-20120401.tar.bz2  nobody13 years
cygwin-1_7_12-releasegdb-cygwin-1_7_12-release.zip  gdb-cygwin-1_7_12-release.tar.gz  gdb-cygwin-1_7_12-release.tar.bz2  nobody13 years
cgen-snapshot-20120401gdb-cgen-snapshot-20120401.zip  gdb-cgen-snapshot-20120401.tar.gz  gdb-cgen-snapshot-20120401.tar.bz2  nobody13 years
sid-snapshot-20120301gdb-sid-snapshot-20120301.zip  gdb-sid-snapshot-20120301.tar.gz  gdb-sid-snapshot-20120301.tar.bz2  nobody13 years
cgen-snapshot-20120301gdb-cgen-snapshot-20120301.zip  gdb-cgen-snapshot-20120301.tar.gz  gdb-cgen-snapshot-20120301.tar.bz2  nobody13 years
cygwin-1_7_11-releasegdb-cygwin-1_7_11-release.zip  gdb-cygwin-1_7_11-release.tar.gz  gdb-cygwin-1_7_11-release.tar.bz2  nobody13 years
cygwin-1_7_10-releasegdb-cygwin-1_7_10-release.zip  gdb-cygwin-1_7_10-release.tar.gz  gdb-cygwin-1_7_10-release.tar.bz2  nobody13 years
sid-snapshot-20120201gdb-sid-snapshot-20120201.zip  gdb-sid-snapshot-20120201.tar.gz  gdb-sid-snapshot-20120201.tar.bz2  nobody13 years
gdb_7_4-2012-01-24-releasegdb_7_4-2012-01-24-release.zip  gdb_7_4-2012-01-24-release.tar.gz  gdb_7_4-2012-01-24-release.tar.bz2  Joel Brobecker13 years
sid-snapshot-20120101gdb-sid-snapshot-20120101.zip  gdb-sid-snapshot-20120101.tar.gz  gdb-sid-snapshot-20120101.tar.bz2  nobody13 years
cgen-snapshot-20120201gdb-cgen-snapshot-20120201.zip  gdb-cgen-snapshot-20120201.tar.gz  gdb-cgen-snapshot-20120201.tar.bz2  nobody13 years
cgen-snapshot-20120101gdb-cgen-snapshot-20120101.zip  gdb-cgen-snapshot-20120101.tar.gz  gdb-cgen-snapshot-20120101.tar.bz2  nobody13 years
newlib-1_20_0gdb-newlib-1_20_0.zip  gdb-newlib-1_20_0.tar.gz  gdb-newlib-1_20_0.tar.bz2  nobody13 years
sid-snapshot-20111201gdb-sid-snapshot-20111201.zip  gdb-sid-snapshot-20111201.tar.gz  gdb-sid-snapshot-20111201.tar.bz2  nobody13 years
cgen-snapshot-20111201gdb-cgen-snapshot-20111201.zip  gdb-cgen-snapshot-20111201.tar.gz  gdb-cgen-snapshot-20111201.tar.bz2  nobody13 years
gdb_7_4-2011-12-13-branchpointgdb_7_4-2011-12-13-branchpoint.zip  gdb_7_4-2011-12-13-branchpoint.tar.gz  gdb_7_4-2011-12-13-branchpoint.tar.bz2  nobody13 years
binutils-2_22gdb-binutils-2_22.zip  gdb-binutils-2_22.tar.gz  gdb-binutils-2_22.tar.bz2  Tristan Gingold13 years
sid-snapshot-20111101gdb-sid-snapshot-20111101.zip  gdb-sid-snapshot-20111101.tar.gz  gdb-sid-snapshot-20111101.tar.bz2  nobody13 years
cgen-snapshot-20111101gdb-cgen-snapshot-20111101.zip  gdb-cgen-snapshot-20111101.tar.gz  gdb-cgen-snapshot-20111101.tar.bz2  nobody13 years
sid-snapshot-20111001gdb-sid-snapshot-20111001.zip  gdb-sid-snapshot-20111001.tar.gz  gdb-sid-snapshot-20111001.tar.bz2  nobody13 years
sid-snapshot-20110901gdb-sid-snapshot-20110901.zip  gdb-sid-snapshot-20110901.tar.gz  gdb-sid-snapshot-20110901.tar.bz2  nobody13 years
cgen-snapshot-20111001gdb-cgen-snapshot-20111001.zip  gdb-cgen-snapshot-20111001.tar.gz  gdb-cgen-snapshot-20111001.tar.bz2  nobody13 years
cgen-snapshot-20110901gdb-cgen-snapshot-20110901.zip  gdb-cgen-snapshot-20110901.tar.gz  gdb-cgen-snapshot-20110901.tar.bz2  nobody13 years
cgen-snapshot-20110801gdb-cgen-snapshot-20110801.zip  gdb-cgen-snapshot-20110801.tar.gz  gdb-cgen-snapshot-20110801.tar.bz2  nobody13 years
cgen-snapshot-20110701gdb-cgen-snapshot-20110701.zip  gdb-cgen-snapshot-20110701.tar.gz  gdb-cgen-snapshot-20110701.tar.bz2  nobody13 years
binutils-2_22-branchpointgdb-binutils-2_22-branchpoint.zip  gdb-binutils-2_22-branchpoint.tar.gz  gdb-binutils-2_22-branchpoint.tar.bz2  nobody13 years
gdb_7_3_1-2011-09-04-releasegdb_7_3_1-2011-09-04-release.zip  gdb_7_3_1-2011-09-04-release.tar.gz  gdb_7_3_1-2011-09-04-release.tar.bz2  Joel Brobecker14 years
sid-snapshot-20110801gdb-sid-snapshot-20110801.zip  gdb-sid-snapshot-20110801.tar.gz  gdb-sid-snapshot-20110801.tar.bz2  nobody14 years
gdb_7_3-2011-07-26-releasegdb_7_3-2011-07-26-release.zip  gdb_7_3-2011-07-26-release.tar.gz  gdb_7_3-2011-07-26-release.tar.bz2  gdbadmin14 years
sid-snapshot-20110701gdb-sid-snapshot-20110701.zip  gdb-sid-snapshot-20110701.tar.gz  gdb-sid-snapshot-20110701.tar.bz2  nobody14 years
binutils-2_21_1gdb-binutils-2_21_1.zip  gdb-binutils-2_21_1.tar.gz  gdb-binutils-2_21_1.tar.bz2  Tristan Gingold14 years
sid-snapshot-20110601gdb-sid-snapshot-20110601.zip  gdb-sid-snapshot-20110601.tar.gz  gdb-sid-snapshot-20110601.tar.bz2  nobody14 years
cgen-snapshot-20110601gdb-cgen-snapshot-20110601.zip  gdb-cgen-snapshot-20110601.tar.gz  gdb-cgen-snapshot-20110601.tar.bz2  nobody14 years
sid-snapshot-20110501gdb-sid-snapshot-20110501.zip  gdb-sid-snapshot-20110501.tar.gz  gdb-sid-snapshot-20110501.tar.bz2  nobody14 years
cgen-snapshot-20110501gdb-cgen-snapshot-20110501.zip  gdb-cgen-snapshot-20110501.tar.gz  gdb-cgen-snapshot-20110501.tar.bz2  nobody14 years
sid-snapshot-20110401gdb-sid-snapshot-20110401.zip  gdb-sid-snapshot-20110401.tar.gz  gdb-sid-snapshot-20110401.tar.bz2  nobody14 years
gdb_7_3-2011-04-01-branchpointgdb_7_3-2011-04-01-branchpoint.zip  gdb_7_3-2011-04-01-branchpoint.tar.gz  gdb_7_3-2011-04-01-branchpoint.tar.bz2  nobody14 years
cygwin-1_7_9-releasegdb-cygwin-1_7_9-release.zip  gdb-cygwin-1_7_9-release.tar.gz  gdb-cygwin-1_7_9-release.tar.bz2  nobody14 years
cgen-snapshot-20110401gdb-cgen-snapshot-20110401.zip  gdb-cgen-snapshot-20110401.tar.gz  gdb-cgen-snapshot-20110401.tar.bz2  nobody14 years
sid-snapshot-20110301gdb-sid-snapshot-20110301.zip  gdb-sid-snapshot-20110301.tar.gz  gdb-sid-snapshot-20110301.tar.bz2  nobody14 years
cygwin-1_7_8-releasegdb-cygwin-1_7_8-release.zip  gdb-cygwin-1_7_8-release.tar.gz  gdb-cygwin-1_7_8-release.tar.bz2  nobody14 years
cgen-snapshot-20110301gdb-cgen-snapshot-20110301.zip  gdb-cgen-snapshot-20110301.tar.gz  gdb-cgen-snapshot-20110301.tar.bz2  nobody14 years
sid-snapshot-20110201gdb-sid-snapshot-20110201.zip  gdb-sid-snapshot-20110201.tar.gz  gdb-sid-snapshot-20110201.tar.bz2  nobody14 years
cgen-snapshot-20110201gdb-cgen-snapshot-20110201.zip  gdb-cgen-snapshot-20110201.tar.gz  gdb-cgen-snapshot-20110201.tar.bz2  nobody14 years
sid-snapshot-20110101gdb-sid-snapshot-20110101.zip  gdb-sid-snapshot-20110101.tar.gz  gdb-sid-snapshot-20110101.tar.bz2  nobody14 years
newlib-1_19_0gdb-newlib-1_19_0.zip  gdb-newlib-1_19_0.tar.gz  gdb-newlib-1_19_0.tar.bz2  nobody14 years
cgen-snapshot-20110101gdb-cgen-snapshot-20110101.zip  gdb-cgen-snapshot-20110101.tar.gz  gdb-cgen-snapshot-20110101.tar.bz2  nobody14 years
binutils-2_21gdb-binutils-2_21.zip  gdb-binutils-2_21.tar.gz  gdb-binutils-2_21.tar.bz2  nobody14 years
sid-snapshot-20101201gdb-sid-snapshot-20101201.zip  gdb-sid-snapshot-20101201.tar.gz  gdb-sid-snapshot-20101201.tar.bz2  nobody14 years
cgen-snapshot-20101201gdb-cgen-snapshot-20101201.zip  gdb-cgen-snapshot-20101201.tar.gz  gdb-cgen-snapshot-20101201.tar.bz2  nobody14 years
sid-snapshot-20101101gdb-sid-snapshot-20101101.zip  gdb-sid-snapshot-20101101.tar.gz  gdb-sid-snapshot-20101101.tar.bz2  nobody14 years
cgen-snapshot-20101101gdb-cgen-snapshot-20101101.zip  gdb-cgen-snapshot-20101101.tar.gz  gdb-cgen-snapshot-20101101.tar.bz2  nobody14 years
binutils-2_21-branchpointgdb-binutils-2_21-branchpoint.zip  gdb-binutils-2_21-branchpoint.tar.gz  gdb-binutils-2_21-branchpoint.tar.bz2  nobody14 years
sid-snapshot-20101001gdb-sid-snapshot-20101001.zip  gdb-sid-snapshot-20101001.tar.gz  gdb-sid-snapshot-20101001.tar.bz2  nobody14 years
cgen-snapshot-20101001gdb-cgen-snapshot-20101001.zip  gdb-cgen-snapshot-20101001.tar.gz  gdb-cgen-snapshot-20101001.tar.bz2  nobody14 years
gdb_7_2-2010-09-02-releasegdb_7_2-2010-09-02-release.zip  gdb_7_2-2010-09-02-release.tar.gz  gdb_7_2-2010-09-02-release.tar.bz2  Joel Brobecker15 years
sid-snapshot-20100901gdb-sid-snapshot-20100901.zip  gdb-sid-snapshot-20100901.tar.gz  gdb-sid-snapshot-20100901.tar.bz2  nobody15 years
cygwin-1_7_7-releasegdb-cygwin-1_7_7-release.zip  gdb-cygwin-1_7_7-release.tar.gz  gdb-cygwin-1_7_7-release.tar.bz2  nobody15 years
cgen-snapshot-20100901gdb-cgen-snapshot-20100901.zip  gdb-cgen-snapshot-20100901.tar.gz  gdb-cgen-snapshot-20100901.tar.bz2  nobody15 years
sid-snapshot-20100801gdb-sid-snapshot-20100801.zip  gdb-sid-snapshot-20100801.tar.gz  gdb-sid-snapshot-20100801.tar.bz2  nobody15 years
cgen-snapshot-20100801gdb-cgen-snapshot-20100801.zip  gdb-cgen-snapshot-20100801.tar.gz  gdb-cgen-snapshot-20100801.tar.bz2  nobody15 years
sid-snapshot-20100701gdb-sid-snapshot-20100701.zip  gdb-sid-snapshot-20100701.tar.gz  gdb-sid-snapshot-20100701.tar.bz2  nobody15 years
cgen-snapshot-20100701gdb-cgen-snapshot-20100701.zip  gdb-cgen-snapshot-20100701.tar.gz  gdb-cgen-snapshot-20100701.tar.bz2  nobody15 years
gdb_7_2-2010-07-07-branchpointgdb_7_2-2010-07-07-branchpoint.zip  gdb_7_2-2010-07-07-branchpoint.tar.gz  gdb_7_2-2010-07-07-branchpoint.tar.bz2  nobody15 years
sid-snapshot-20100601gdb-sid-snapshot-20100601.zip  gdb-sid-snapshot-20100601.tar.gz  gdb-sid-snapshot-20100601.tar.bz2  nobody15 years
cgen-snapshot-20100601gdb-cgen-snapshot-20100601.zip  gdb-cgen-snapshot-20100601.tar.gz  gdb-cgen-snapshot-20100601.tar.bz2  nobody15 years
sid-snapshot-20100501gdb-sid-snapshot-20100501.zip  gdb-sid-snapshot-20100501.tar.gz  gdb-sid-snapshot-20100501.tar.bz2  nobody15 years
cgen-snapshot-20100501gdb-cgen-snapshot-20100501.zip  gdb-cgen-snapshot-20100501.tar.gz  gdb-cgen-snapshot-20100501.tar.bz2  nobody15 years
cygwin-1_7_5-releasegdb-cygwin-1_7_5-release.zip  gdb-cygwin-1_7_5-release.tar.gz  gdb-cygwin-1_7_5-release.tar.bz2  nobody15 years
cygwin-1_7_4-releasegdb-cygwin-1_7_4-release.zip  gdb-cygwin-1_7_4-release.tar.gz  gdb-cygwin-1_7_4-release.tar.bz2  nobody15 years
sid-snapshot-20100401gdb-sid-snapshot-20100401.zip  gdb-sid-snapshot-20100401.tar.gz  gdb-sid-snapshot-20100401.tar.bz2  nobody15 years
cgen-snapshot-20100401gdb-cgen-snapshot-20100401.zip  gdb-cgen-snapshot-20100401.tar.gz  gdb-cgen-snapshot-20100401.tar.bz2  nobody15 years
cygwin-1_7_3-releasegdb-cygwin-1_7_3-release.zip  gdb-cygwin-1_7_3-release.tar.gz  gdb-cygwin-1_7_3-release.tar.bz2  nobody15 years
gdb_7_1-2010-03-18-releasegdb_7_1-2010-03-18-release.zip  gdb_7_1-2010-03-18-release.tar.gz  gdb_7_1-2010-03-18-release.tar.bz2  Joel Brobecker15 years
cygwin-1_7_2-releasegdb-cygwin-1_7_2-release.zip  gdb-cygwin-1_7_2-release.tar.gz  gdb-cygwin-1_7_2-release.tar.bz2  nobody15 years
binutils-2_20_1gdb-binutils-2_20_1.zip  gdb-binutils-2_20_1.tar.gz  gdb-binutils-2_20_1.tar.bz2  Tristan Gingold15 years
sid-snapshot-20100301gdb-sid-snapshot-20100301.zip  gdb-sid-snapshot-20100301.tar.gz  gdb-sid-snapshot-20100301.tar.bz2  nobody15 years
cgen-snapshot-20100301gdb-cgen-snapshot-20100301.zip  gdb-cgen-snapshot-20100301.tar.gz  gdb-cgen-snapshot-20100301.tar.bz2  nobody15 years
cgen-snapshot-20100201gdb-cgen-snapshot-20100201.zip  gdb-cgen-snapshot-20100201.tar.gz  gdb-cgen-snapshot-20100201.tar.bz2  nobody15 years
gdb_7_1-2010-02-18-branchpointgdb_7_1-2010-02-18-branchpoint.zip  gdb_7_1-2010-02-18-branchpoint.tar.gz  gdb_7_1-2010-02-18-branchpoint.tar.bz2  nobody15 years
sid-snapshot-20100201gdb-sid-snapshot-20100201.zip  gdb-sid-snapshot-20100201.tar.gz  gdb-sid-snapshot-20100201.tar.bz2  nobody15 years
sid-snapshot-20100101gdb-sid-snapshot-20100101.zip  gdb-sid-snapshot-20100101.tar.gz  gdb-sid-snapshot-20100101.tar.bz2  nobody15 years
gdb_7_0_1-2009-12-22-releasegdb_7_0_1-2009-12-22-release.zip  gdb_7_0_1-2009-12-22-release.tar.gz  gdb_7_0_1-2009-12-22-release.tar.bz2  gdbadmin15 years
cgen-snapshot-20100101gdb-cgen-snapshot-20100101.zip  gdb-cgen-snapshot-20100101.tar.gz  gdb-cgen-snapshot-20100101.tar.bz2  nobody15 years
newlib-1_18_0gdb-newlib-1_18_0.zip  gdb-newlib-1_18_0.tar.gz  gdb-newlib-1_18_0.tar.bz2  nobody15 years
cygwin-1_7_1-releasegdb-cygwin-1_7_1-release.zip  gdb-cygwin-1_7_1-release.tar.gz  gdb-cygwin-1_7_1-release.tar.bz2  nobody15 years
sid-snapshot-20091201gdb-sid-snapshot-20091201.zip  gdb-sid-snapshot-20091201.tar.gz  gdb-sid-snapshot-20091201.tar.bz2  nobody15 years
cgen-snapshot-20091201gdb-cgen-snapshot-20091201.zip  gdb-cgen-snapshot-20091201.tar.gz  gdb-cgen-snapshot-20091201.tar.bz2  nobody15 years
sid-snapshot-20091101gdb-sid-snapshot-20091101.zip  gdb-sid-snapshot-20091101.tar.gz  gdb-sid-snapshot-20091101.tar.bz2  nobody15 years
cgen-snapshot-20091101gdb-cgen-snapshot-20091101.zip  gdb-cgen-snapshot-20091101.tar.gz  gdb-cgen-snapshot-20091101.tar.bz2  nobody15 years
binutils-2_20gdb-binutils-2_20.zip  gdb-binutils-2_20.tar.gz  gdb-binutils-2_20.tar.bz2  Tristan Gingold15 years
gdb_7_0-2009-10-06-releasegdb_7_0-2009-10-06-release.zip  gdb_7_0-2009-10-06-release.tar.gz  gdb_7_0-2009-10-06-release.tar.bz2  Joel Brobecker15 years
sid-snapshot-20091001gdb-sid-snapshot-20091001.zip  gdb-sid-snapshot-20091001.tar.gz  gdb-sid-snapshot-20091001.tar.bz2  nobody15 years
cgen-snapshot-20091001gdb-cgen-snapshot-20091001.zip  gdb-cgen-snapshot-20091001.tar.gz  gdb-cgen-snapshot-20091001.tar.bz2  nobody15 years
gdb_7_0-2009-09-16-branchpointgdb_7_0-2009-09-16-branchpoint.zip  gdb_7_0-2009-09-16-branchpoint.tar.gz  gdb_7_0-2009-09-16-branchpoint.tar.bz2  nobody15 years
binutils-2_20-branchpointgdb-binutils-2_20-branchpoint.zip  gdb-binutils-2_20-branchpoint.tar.gz  gdb-binutils-2_20-branchpoint.tar.bz2  nobody16 years
sid-snapshot-20090901gdb-sid-snapshot-20090901.zip  gdb-sid-snapshot-20090901.tar.gz  gdb-sid-snapshot-20090901.tar.bz2  nobody16 years
cgen-snapshot-20090901gdb-cgen-snapshot-20090901.zip  gdb-cgen-snapshot-20090901.tar.gz  gdb-cgen-snapshot-20090901.tar.bz2  nobody16 years
sid-snapshot-20090801gdb-sid-snapshot-20090801.zip  gdb-sid-snapshot-20090801.tar.gz  gdb-sid-snapshot-20090801.tar.bz2  nobody16 years
cgen-snapshot-20090801gdb-cgen-snapshot-20090801.zip  gdb-cgen-snapshot-20090801.tar.gz  gdb-cgen-snapshot-20090801.tar.bz2  nobody16 years
msnyder-checkpoint-072509-branchpointgdb-msnyder-checkpoint-072509-branchpoint.zip  gdb-msnyder-checkpoint-072509-branchpoint.tar.gz  gdb-msnyder-checkpoint-072509-branchpoint.tar.bz2  nobody16 years
sid-snapshot-20090701gdb-sid-snapshot-20090701.zip  gdb-sid-snapshot-20090701.tar.gz  gdb-sid-snapshot-20090701.tar.bz2  nobody16 years
cgen-snapshot-20090701gdb-cgen-snapshot-20090701.zip  gdb-cgen-snapshot-20090701.tar.gz  gdb-cgen-snapshot-20090701.tar.bz2  nobody16 years
dje-cgen-play1-branchpointgdb-dje-cgen-play1-branchpoint.zip  gdb-dje-cgen-play1-branchpoint.tar.gz  gdb-dje-cgen-play1-branchpoint.tar.bz2  nobody16 years
cgen-snapshot-20090601gdb-cgen-snapshot-20090601.zip  gdb-cgen-snapshot-20090601.tar.gz  gdb-cgen-snapshot-20090601.tar.bz2  nobody16 years
cgen-snapshot-20090501gdb-cgen-snapshot-20090501.zip  gdb-cgen-snapshot-20090501.tar.gz  gdb-cgen-snapshot-20090501.tar.bz2  nobody16 years
cgen-snapshot-20090401gdb-cgen-snapshot-20090401.zip  gdb-cgen-snapshot-20090401.tar.gz  gdb-cgen-snapshot-20090401.tar.bz2  nobody16 years
cgen-snapshot-20090301gdb-cgen-snapshot-20090301.zip  gdb-cgen-snapshot-20090301.tar.gz  gdb-cgen-snapshot-20090301.tar.bz2  nobody16 years
cgen-1_1-branchpointgdb-cgen-1_1-branchpoint.zip  gdb-cgen-1_1-branchpoint.tar.gz  gdb-cgen-1_1-branchpoint.tar.bz2  nobody16 years
sid-snapshot-20090601gdb-sid-snapshot-20090601.zip  gdb-sid-snapshot-20090601.tar.gz  gdb-sid-snapshot-20090601.tar.bz2  nobody16 years
sid-snapshot-20090501gdb-sid-snapshot-20090501.zip  gdb-sid-snapshot-20090501.tar.gz  gdb-sid-snapshot-20090501.tar.bz2  nobody16 years
sid-snapshot-20090401gdb-sid-snapshot-20090401.zip  gdb-sid-snapshot-20090401.tar.gz  gdb-sid-snapshot-20090401.tar.bz2  nobody16 years
arc-sim-20090309gdb-arc-sim-20090309.zip  gdb-arc-sim-20090309.tar.gz  gdb-arc-sim-20090309.tar.bz2  Joern Rennecke16 years
cgen-snapshot-20080201gdb-cgen-snapshot-20080201.zip  gdb-cgen-snapshot-20080201.tar.gz  gdb-cgen-snapshot-20080201.tar.bz2  nobody16 years
cgen-snapshot-20080101gdb-cgen-snapshot-20080101.zip  gdb-cgen-snapshot-20080101.tar.gz  gdb-cgen-snapshot-20080101.tar.bz2  nobody16 years
cgen-snapshot-20071201gdb-cgen-snapshot-20071201.zip  gdb-cgen-snapshot-20071201.tar.gz  gdb-cgen-snapshot-20071201.tar.bz2  nobody16 years
arc-insight_6_8-branchpointgdb-arc-insight_6_8-branchpoint.zip  gdb-arc-insight_6_8-branchpoint.tar.gz  gdb-arc-insight_6_8-branchpoint.tar.bz2  Joern Rennecke16 years
sid-snapshot-20090301gdb-sid-snapshot-20090301.zip  gdb-sid-snapshot-20090301.tar.gz  gdb-sid-snapshot-20090301.tar.bz2  nobody16 years
binutils-2_19_1gdb-binutils-2_19_1.zip  gdb-binutils-2_19_1.tar.gz  gdb-binutils-2_19_1.tar.bz2  nobody16 years
sid-snapshot-20090201gdb-sid-snapshot-20090201.zip  gdb-sid-snapshot-20090201.tar.gz  gdb-sid-snapshot-20090201.tar.bz2  nobody16 years
cgen-snapshot-20090201gdb-cgen-snapshot-20090201.zip  gdb-cgen-snapshot-20090201.tar.gz  gdb-cgen-snapshot-20090201.tar.bz2  nobody16 years
sid-snapshot-20081101gdb-sid-snapshot-20081101.zip  gdb-sid-snapshot-20081101.tar.gz  gdb-sid-snapshot-20081101.tar.bz2  nobody16 years
cgen-snapshot-20081201gdb-cgen-snapshot-20081201.zip  gdb-cgen-snapshot-20081201.tar.gz  gdb-cgen-snapshot-20081201.tar.bz2  nobody16 years
cgen-snapshot-20081101gdb-cgen-snapshot-20081101.zip  gdb-cgen-snapshot-20081101.tar.gz  gdb-cgen-snapshot-20081101.tar.bz2  nobody16 years
arc-20081103-branchpointgdb-arc-20081103-branchpoint.zip  gdb-arc-20081103-branchpoint.tar.gz  gdb-arc-20081103-branchpoint.tar.bz2  nobody16 years
binutils-arc-20081103-branchpointgdb-binutils-arc-20081103-branchpoint.zip  gdb-binutils-arc-20081103-branchpoint.tar.gz  gdb-binutils-arc-20081103-branchpoint.tar.bz2  nobody16 years
sid-snapshot-20090101gdb-sid-snapshot-20090101.zip  gdb-sid-snapshot-20090101.tar.gz  gdb-sid-snapshot-20090101.tar.bz2  nobody16 years
newlib-1_17_0gdb-newlib-1_17_0.zip  gdb-newlib-1_17_0.tar.gz  gdb-newlib-1_17_0.tar.bz2  nobody16 years
cgen-snapshot-20090101gdb-cgen-snapshot-20090101.zip  gdb-cgen-snapshot-20090101.tar.gz  gdb-cgen-snapshot-20090101.tar.bz2  nobody16 years
reverse-20081226-branchpointgdb-reverse-20081226-branchpoint.zip  gdb-reverse-20081226-branchpoint.tar.gz  gdb-reverse-20081226-branchpoint.tar.bz2  nobody16 years
sid-snapshot-20081201gdb-sid-snapshot-20081201.zip  gdb-sid-snapshot-20081201.tar.gz  gdb-sid-snapshot-20081201.tar.bz2  nobody16 years
multiprocess-20081120-branchpointgdb-multiprocess-20081120-branchpoint.zip  gdb-multiprocess-20081120-branchpoint.tar.gz  gdb-multiprocess-20081120-branchpoint.tar.bz2  nobody16 years
binutils-2_19gdb-binutils-2_19.zip  gdb-binutils-2_19.tar.gz  gdb-binutils-2_19.tar.bz2  nobody16 years
sid-snapshot-20081001gdb-sid-snapshot-20081001.zip  gdb-sid-snapshot-20081001.tar.gz  gdb-sid-snapshot-20081001.tar.bz2  nobody16 years
cgen-snapshot-20081001gdb-cgen-snapshot-20081001.zip  gdb-cgen-snapshot-20081001.tar.gz  gdb-cgen-snapshot-20081001.tar.bz2  nobody16 years
reverse-20080930-branchpointgdb-reverse-20080930-branchpoint.zip  gdb-reverse-20080930-branchpoint.tar.gz  gdb-reverse-20080930-branchpoint.tar.bz2  nobody16 years
sid-snapshot-20080901gdb-sid-snapshot-20080901.zip  gdb-sid-snapshot-20080901.tar.gz  gdb-sid-snapshot-20080901.tar.bz2  nobody17 years
cgen-snapshot-20080901gdb-cgen-snapshot-20080901.zip  gdb-cgen-snapshot-20080901.tar.gz  gdb-cgen-snapshot-20080901.tar.bz2  nobody17 years
cgen-snapshot-20080801gdb-cgen-snapshot-20080801.zip  gdb-cgen-snapshot-20080801.tar.gz  gdb-cgen-snapshot-20080801.tar.bz2  nobody17 years
binutils-arc-20080908-branchpointgdb-binutils-arc-20080908-branchpoint.zip  gdb-binutils-arc-20080908-branchpoint.tar.gz  gdb-binutils-arc-20080908-branchpoint.tar.bz2  nobody17 years
binutils-2_19-branchpointgdb-binutils-2_19-branchpoint.zip  gdb-binutils-2_19-branchpoint.tar.gz  gdb-binutils-2_19-branchpoint.tar.bz2  nobody17 years
sid-snapshot-20080801gdb-sid-snapshot-20080801.zip  gdb-sid-snapshot-20080801.tar.gz  gdb-sid-snapshot-20080801.tar.bz2  nobody17 years
sid-snapshot-20080701gdb-sid-snapshot-20080701.zip  gdb-sid-snapshot-20080701.tar.gz  gdb-sid-snapshot-20080701.tar.bz2  nobody17 years
cgen-snapshot-20080701gdb-cgen-snapshot-20080701.zip  gdb-cgen-snapshot-20080701.tar.gz  gdb-cgen-snapshot-20080701.tar.bz2  nobody17 years
reverse-20080717-branchpointgdb-reverse-20080717-branchpoint.zip  gdb-reverse-20080717-branchpoint.tar.gz  gdb-reverse-20080717-branchpoint.tar.bz2  nobody17 years
sid-snapshot-20080601gdb-sid-snapshot-20080601.zip  gdb-sid-snapshot-20080601.tar.gz  gdb-sid-snapshot-20080601.tar.bz2  nobody17 years
cgen-snapshot-20080601gdb-cgen-snapshot-20080601.zip  gdb-cgen-snapshot-20080601.tar.gz  gdb-cgen-snapshot-20080601.tar.bz2  nobody17 years
cgen-snapshot-20080501gdb-cgen-snapshot-20080501.zip  gdb-cgen-snapshot-20080501.tar.gz  gdb-cgen-snapshot-20080501.tar.bz2  nobody17 years
cgen-snapshot-20080401gdb-cgen-snapshot-20080401.zip  gdb-cgen-snapshot-20080401.tar.gz  gdb-cgen-snapshot-20080401.tar.bz2  nobody17 years
msnyder-reverse-20080609-branchpointgdb-msnyder-reverse-20080609-branchpoint.zip  gdb-msnyder-reverse-20080609-branchpoint.tar.gz  gdb-msnyder-reverse-20080609-branchpoint.tar.bz2  nobody17 years
sid-snapshot-20080501gdb-sid-snapshot-20080501.zip  gdb-sid-snapshot-20080501.tar.gz  gdb-sid-snapshot-20080501.tar.bz2  nobody17 years
sid-snapshot-20080403gdb-sid-snapshot-20080403.zip  gdb-sid-snapshot-20080403.tar.gz  gdb-sid-snapshot-20080403.tar.bz2  nobody17 years
sid-snapshot-20080401gdb-sid-snapshot-20080401.zip  gdb-sid-snapshot-20080401.tar.gz  gdb-sid-snapshot-20080401.tar.bz2  nobody17 years
gdb_6_8-2008-03-27-releasegdb_6_8-2008-03-27-release.zip  gdb_6_8-2008-03-27-release.tar.gz  gdb_6_8-2008-03-27-release.tar.bz2  Joel Brobecker17 years
insight_6_8-branchpointgdb-insight_6_8-branchpoint.zip  gdb-insight_6_8-branchpoint.tar.gz  gdb-insight_6_8-branchpoint.tar.bz2  Joel Brobecker17 years
added-to-binutilsgdb-added-to-binutils.zip  gdb-added-to-binutils.tar.gz  gdb-added-to-binutils.tar.bz2  nobody17 years
sid-snapshot-20080301gdb-sid-snapshot-20080301.zip  gdb-sid-snapshot-20080301.tar.gz  gdb-sid-snapshot-20080301.tar.bz2  nobody17 years
newlib-1_16_0gdb-newlib-1_16_0.zip  gdb-newlib-1_16_0.tar.gz  gdb-newlib-1_16_0.tar.bz2  nobody17 years
cgen-snapshot-20080301gdb-cgen-snapshot-20080301.zip  gdb-cgen-snapshot-20080301.tar.gz  gdb-cgen-snapshot-20080301.tar.bz2  nobody17 years
gdb_6_8-2008-02-26-branchpointgdb_6_8-2008-02-26-branchpoint.zip  gdb_6_8-2008-02-26-branchpoint.tar.gz  gdb_6_8-2008-02-26-branchpoint.tar.bz2  nobody17 years
sid-snapshot-20080201gdb-sid-snapshot-20080201.zip  gdb-sid-snapshot-20080201.tar.gz  gdb-sid-snapshot-20080201.tar.bz2  nobody17 years
sid-snapshot-20080101gdb-sid-snapshot-20080101.zip  gdb-sid-snapshot-20080101.tar.gz  gdb-sid-snapshot-20080101.tar.bz2  nobody17 years
sid-snapshot-20071201gdb-sid-snapshot-20071201.zip  gdb-sid-snapshot-20071201.tar.gz  gdb-sid-snapshot-20071201.tar.bz2  nobody17 years
sid-snapshot-20071101gdb-sid-snapshot-20071101.zip  gdb-sid-snapshot-20071101.tar.gz  gdb-sid-snapshot-20071101.tar.bz2  nobody17 years
gdb_6_7_1-2007-10-29-releasegdb_6_7_1-2007-10-29-release.zip  gdb_6_7_1-2007-10-29-release.tar.gz  gdb_6_7_1-2007-10-29-release.tar.bz2  gdbadmin17 years
cgen-snapshot-20071101gdb-cgen-snapshot-20071101.zip  gdb-cgen-snapshot-20071101.tar.gz  gdb-cgen-snapshot-20071101.tar.bz2  nobody17 years
gdb_6_7-2007-10-10-releasegdb_6_7-2007-10-10-release.zip  gdb_6_7-2007-10-10-release.tar.gz  gdb_6_7-2007-10-10-release.tar.bz2  gdbadmin17 years
sid-snapshot-20071001gdb-sid-snapshot-20071001.zip  gdb-sid-snapshot-20071001.tar.gz  gdb-sid-snapshot-20071001.tar.bz2  nobody17 years
cgen-snapshot-20071001gdb-cgen-snapshot-20071001.zip  gdb-cgen-snapshot-20071001.tar.gz  gdb-cgen-snapshot-20071001.tar.bz2  nobody17 years
gdb_6_7-2007-09-07-branchpointgdb_6_7-2007-09-07-branchpoint.zip  gdb_6_7-2007-09-07-branchpoint.tar.gz  gdb_6_7-2007-09-07-branchpoint.tar.bz2  nobody18 years
binutils-2_18gdb-binutils-2_18.zip  gdb-binutils-2_18.tar.gz  gdb-binutils-2_18.tar.bz2  Daniel Jacobowitz18 years
binutils-2_18-branchpointgdb-binutils-2_18-branchpoint.zip  gdb-binutils-2_18-branchpoint.tar.gz  gdb-binutils-2_18-branchpoint.tar.bz2  nobody18 years
drow-reverse-20070409-branchpointgdb-drow-reverse-20070409-branchpoint.zip  gdb-drow-reverse-20070409-branchpoint.tar.gz  gdb-drow-reverse-20070409-branchpoint.tar.bz2  nobody18 years
insight_6_6-20070208-releasegdb-insight_6_6-20070208-release.zip  gdb-insight_6_6-20070208-release.tar.gz  gdb-insight_6_6-20070208-release.tar.bz2  gdbadmin18 years
gdb_6_6-2006-12-18-releasegdb_6_6-2006-12-18-release.zip  gdb_6_6-2006-12-18-release.tar.gz  gdb_6_6-2006-12-18-release.tar.bz2  Joel Brobecker18 years
newlib-csl-coldfire-4_1-32gdb-newlib-csl-coldfire-4_1-32.zip  gdb-newlib-csl-coldfire-4_1-32.tar.gz  gdb-newlib-csl-coldfire-4_1-32.tar.bz2  Daniel Jacobowitz18 years
newlib-csl-innovasic-fido-3_4_4-33gdb-newlib-csl-innovasic-fido-3_4_4-33.zip  gdb-newlib-csl-innovasic-fido-3_4_4-33.tar.gz  gdb-newlib-csl-innovasic-fido-3_4_4-33.tar.bz2  Daniel Jacobowitz18 years
newlib-csl-sourcerygxx-4_1-32gdb-newlib-csl-sourcerygxx-4_1-32.zip  gdb-newlib-csl-sourcerygxx-4_1-32.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-32.tar.bz2  Daniel Jacobowitz18 years
binutils-csl-coldfire-4_1-32gdb-binutils-csl-coldfire-4_1-32.zip  gdb-binutils-csl-coldfire-4_1-32.tar.gz  gdb-binutils-csl-coldfire-4_1-32.tar.bz2  Paul Brook18 years
binutils-csl-innovasic-fido-3_4_4-33gdb-binutils-csl-innovasic-fido-3_4_4-33.zip  gdb-binutils-csl-innovasic-fido-3_4_4-33.tar.gz  gdb-binutils-csl-innovasic-fido-3_4_4-33.tar.bz2  Paul Brook18 years
binutils-csl-sourcerygxx-4_1-32gdb-binutils-csl-sourcerygxx-4_1-32.zip  gdb-binutils-csl-sourcerygxx-4_1-32.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-32.tar.bz2  Paul Brook18 years
newlib-1_15_0gdb-newlib-1_15_0.zip  gdb-newlib-1_15_0.tar.gz  gdb-newlib-1_15_0.tar.bz2  nobody18 years
binutils-csl-sourcerygxx-4_1-29gdb-binutils-csl-sourcerygxx-4_1-29.zip  gdb-binutils-csl-sourcerygxx-4_1-29.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-29.tar.bz2  Kazu Hirata18 years
binutils-csl-sourcerygxx-4_1-30gdb-binutils-csl-sourcerygxx-4_1-30.zip  gdb-binutils-csl-sourcerygxx-4_1-30.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-30.tar.bz2  nobody18 years
binutils-csl-sourcerygxx-4_1-28gdb-binutils-csl-sourcerygxx-4_1-28.zip  gdb-binutils-csl-sourcerygxx-4_1-28.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-28.tar.bz2  nobody18 years
binutils-csl-coldfire-4_1-30gdb-binutils-csl-coldfire-4_1-30.zip  gdb-binutils-csl-coldfire-4_1-30.tar.gz  gdb-binutils-csl-coldfire-4_1-30.tar.bz2  nobody18 years
binutils-csl-coldfire-4_1-28gdb-binutils-csl-coldfire-4_1-28.zip  gdb-binutils-csl-coldfire-4_1-28.tar.gz  gdb-binutils-csl-coldfire-4_1-28.tar.bz2  nobody18 years
nickrob-async-20060828-mergepointgdb-nickrob-async-20060828-mergepoint.zip  gdb-nickrob-async-20060828-mergepoint.tar.gz  gdb-nickrob-async-20060828-mergepoint.tar.bz2  nobody18 years
gdb_6_6-2006-11-15-branchpointgdb_6_6-2006-11-15-branchpoint.zip  gdb_6_6-2006-11-15-branchpoint.tar.gz  gdb_6_6-2006-11-15-branchpoint.tar.bz2  nobody18 years
binutils-csl-sourcerygxx-4_1-27gdb-binutils-csl-sourcerygxx-4_1-27.zip  gdb-binutils-csl-sourcerygxx-4_1-27.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-27.tar.bz2  nobody18 years
binutils-csl-arm-2006q3-27gdb-binutils-csl-arm-2006q3-27.zip  gdb-binutils-csl-arm-2006q3-27.tar.gz  gdb-binutils-csl-arm-2006q3-27.tar.bz2  nobody18 years
newlib-csl-arm-2006q3-27gdb-newlib-csl-arm-2006q3-27.zip  gdb-newlib-csl-arm-2006q3-27.tar.gz  gdb-newlib-csl-arm-2006q3-27.tar.bz2  Paul Brook18 years
newlib-csl-coldfire-4_1-28gdb-newlib-csl-coldfire-4_1-28.zip  gdb-newlib-csl-coldfire-4_1-28.tar.gz  gdb-newlib-csl-coldfire-4_1-28.tar.bz2  Paul Brook18 years
newlib-csl-coldfire-4_1-30gdb-newlib-csl-coldfire-4_1-30.zip  gdb-newlib-csl-coldfire-4_1-30.tar.gz  gdb-newlib-csl-coldfire-4_1-30.tar.bz2  Paul Brook18 years
newlib-csl-sourcerygxx-4_1-27gdb-newlib-csl-sourcerygxx-4_1-27.zip  gdb-newlib-csl-sourcerygxx-4_1-27.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-27.tar.bz2  Paul Brook18 years
newlib-csl-sourcerygxx-4_1-28gdb-newlib-csl-sourcerygxx-4_1-28.zip  gdb-newlib-csl-sourcerygxx-4_1-28.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-28.tar.bz2  Paul Brook18 years
newlib-csl-sourcerygxx-4_1-30gdb-newlib-csl-sourcerygxx-4_1-30.zip  gdb-newlib-csl-sourcerygxx-4_1-30.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-30.tar.bz2  Paul Brook18 years
binutils-csl-sourcerygxx-4_1-26gdb-binutils-csl-sourcerygxx-4_1-26.zip  gdb-binutils-csl-sourcerygxx-4_1-26.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-26.tar.bz2  nobody18 years
binutils-csl-arm-2006q3-26gdb-binutils-csl-arm-2006q3-26.zip  gdb-binutils-csl-arm-2006q3-26.tar.gz  gdb-binutils-csl-arm-2006q3-26.tar.bz2  nobody18 years
binutils-csl-sourcerygxx-4_1-25gdb-binutils-csl-sourcerygxx-4_1-25.zip  gdb-binutils-csl-sourcerygxx-4_1-25.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-25.tar.bz2  nobody18 years
newlib-csl-arm-2006q3-26gdb-newlib-csl-arm-2006q3-26.zip  gdb-newlib-csl-arm-2006q3-26.tar.gz  gdb-newlib-csl-arm-2006q3-26.tar.bz2  Vladimir Prus18 years
newlib-csl-sourcerygxx-4_1-26gdb-newlib-csl-sourcerygxx-4_1-26.zip  gdb-newlib-csl-sourcerygxx-4_1-26.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-26.tar.bz2  Vladimir Prus18 years
binutils-csl-sourcerygxx-4_1-24gdb-binutils-csl-sourcerygxx-4_1-24.zip  gdb-binutils-csl-sourcerygxx-4_1-24.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-24.tar.bz2  nobody18 years
newlib-csl-sourcerygxx-4_1-24gdb-newlib-csl-sourcerygxx-4_1-24.zip  gdb-newlib-csl-sourcerygxx-4_1-24.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-24.tar.bz2  Nathan Sidwell18 years
binutils-csl-sourcerygxx-4_1-23gdb-binutils-csl-sourcerygxx-4_1-23.zip  gdb-binutils-csl-sourcerygxx-4_1-23.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-23.tar.bz2  nobody18 years
insight_6_5-20061003-releasegdb-insight_6_5-20061003-release.zip  gdb-insight_6_5-20061003-release.tar.gz  gdb-insight_6_5-20061003-release.tar.bz2  gdbadmin18 years
gdb-csl-symbian-6_4_50_20060226-12gdb-csl-symbian-6_4_50_20060226-12.zip  gdb-csl-symbian-6_4_50_20060226-12.tar.gz  gdb-csl-symbian-6_4_50_20060226-12.tar.bz2  Daniel Jacobowitz18 years
newlib-csl-arm-2006q3-21gdb-newlib-csl-arm-2006q3-21.zip  gdb-newlib-csl-arm-2006q3-21.tar.gz  gdb-newlib-csl-arm-2006q3-21.tar.bz2  Paul Brook18 years
newlib-csl-sourcerygxx-4_1-21gdb-newlib-csl-sourcerygxx-4_1-21.zip  gdb-newlib-csl-sourcerygxx-4_1-21.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-21.tar.bz2  Paul Brook18 years
newlib-csl-sourcerygxx-4_1-23gdb-newlib-csl-sourcerygxx-4_1-23.zip  gdb-newlib-csl-sourcerygxx-4_1-23.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-23.tar.bz2  Paul Brook18 years
binutils-csl-sourcerygxx-4_1-22gdb-binutils-csl-sourcerygxx-4_1-22.zip  gdb-binutils-csl-sourcerygxx-4_1-22.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-22.tar.bz2  nobody18 years
binutils-csl-sourcerygxx-4_1-21gdb-binutils-csl-sourcerygxx-4_1-21.zip  gdb-binutils-csl-sourcerygxx-4_1-21.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-21.tar.bz2  nobody18 years
binutils-csl-arm-2006q3-21gdb-binutils-csl-arm-2006q3-21.zip  gdb-binutils-csl-arm-2006q3-21.tar.gz  gdb-binutils-csl-arm-2006q3-21.tar.bz2  nobody18 years
binutils-csl-palmsource-arm-prelinker-1_0-1gdb-binutils-csl-palmsource-arm-prelinker-1_0-1.zip  gdb-binutils-csl-palmsource-arm-prelinker-1_0-1.tar.gz  gdb-binutils-csl-palmsource-arm-prelinker-1_0-1.tar.bz2  nobody18 years
binutils-csl-sourcerygxx-4_1-20gdb-binutils-csl-sourcerygxx-4_1-20.zip  gdb-binutils-csl-sourcerygxx-4_1-20.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-20.tar.bz2  nobody18 years
newlib-csl-arm-2006q3-19gdb-newlib-csl-arm-2006q3-19.zip  gdb-newlib-csl-arm-2006q3-19.tar.gz  gdb-newlib-csl-arm-2006q3-19.tar.bz2  Paul Brook19 years
newlib-csl-sourcerygxx-4_1-19gdb-newlib-csl-sourcerygxx-4_1-19.zip  gdb-newlib-csl-sourcerygxx-4_1-19.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-19.tar.bz2  Paul Brook19 years
binutils-csl-sourcerygxx-4_1-19gdb-binutils-csl-sourcerygxx-4_1-19.zip  gdb-binutils-csl-sourcerygxx-4_1-19.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-19.tar.bz2  nobody19 years
binutils-csl-arm-2006q3-19gdb-binutils-csl-arm-2006q3-19.zip  gdb-binutils-csl-arm-2006q3-19.tar.gz  gdb-binutils-csl-arm-2006q3-19.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-4_1-18gdb-binutils-csl-sourcerygxx-4_1-18.zip  gdb-binutils-csl-sourcerygxx-4_1-18.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-18.tar.bz2  nobody19 years
newlib-csl-sourcerygxx-4_1-18gdb-newlib-csl-sourcerygxx-4_1-18.zip  gdb-newlib-csl-sourcerygxx-4_1-18.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-18.tar.bz2  Nathan Sidwell19 years
binutils-csl-renesas-4_1-9gdb-binutils-csl-renesas-4_1-9.zip  gdb-binutils-csl-renesas-4_1-9.tar.gz  gdb-binutils-csl-renesas-4_1-9.tar.bz2  nobody19 years
gdb-csl-symbian-6_4_50_20060226-11gdb-csl-symbian-6_4_50_20060226-11.zip  gdb-csl-symbian-6_4_50_20060226-11.tar.gz  gdb-csl-symbian-6_4_50_20060226-11.tar.bz2  Daniel Jacobowitz19 years
binutils-csl-renesas-4_1-8gdb-binutils-csl-renesas-4_1-8.zip  gdb-binutils-csl-renesas-4_1-8.tar.gz  gdb-binutils-csl-renesas-4_1-8.tar.bz2  nobody19 years
newlib-csl-sourcerygxx-3_4_4-25gdb-newlib-csl-sourcerygxx-3_4_4-25.zip  gdb-newlib-csl-sourcerygxx-3_4_4-25.tar.gz  gdb-newlib-csl-sourcerygxx-3_4_4-25.tar.bz2  nobody19 years
binutils-csl-renesas-4_1-7gdb-binutils-csl-renesas-4_1-7.zip  gdb-binutils-csl-renesas-4_1-7.tar.gz  gdb-binutils-csl-renesas-4_1-7.tar.bz2  nobody19 years
binutils-csl-renesas-4_1-6gdb-binutils-csl-renesas-4_1-6.zip  gdb-binutils-csl-renesas-4_1-6.tar.gz  gdb-binutils-csl-renesas-4_1-6.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-4_1-17gdb-binutils-csl-sourcerygxx-4_1-17.zip  gdb-binutils-csl-sourcerygxx-4_1-17.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-17.tar.bz2  nobody19 years
gdb-csl-20060226-branch-local-2gdb-csl-20060226-branch-local-2.zip  gdb-csl-20060226-branch-local-2.tar.gz  gdb-csl-20060226-branch-local-2.tar.bz2  Nathan Sidwell19 years
gdb-csl-sourcerygxx-4_1-17gdb-csl-sourcerygxx-4_1-17.zip  gdb-csl-sourcerygxx-4_1-17.tar.gz  gdb-csl-sourcerygxx-4_1-17.tar.bz2  Nathan Sidwell19 years
newlib-csl-sourcerygxx-4_1-17gdb-newlib-csl-sourcerygxx-4_1-17.zip  gdb-newlib-csl-sourcerygxx-4_1-17.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-17.tar.bz2  Nathan Sidwell19 years
binutils-csl-sourcerygxx-4_1-15gdb-binutils-csl-sourcerygxx-4_1-15.zip  gdb-binutils-csl-sourcerygxx-4_1-15.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-15.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-4_1-14gdb-binutils-csl-sourcerygxx-4_1-14.zip  gdb-binutils-csl-sourcerygxx-4_1-14.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-14.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-4_1-13gdb-binutils-csl-sourcerygxx-4_1-13.zip  gdb-binutils-csl-sourcerygxx-4_1-13.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-13.tar.bz2  nobody19 years
newlib-csl-sourcerygxx-4_1-13gdb-newlib-csl-sourcerygxx-4_1-13.zip  gdb-newlib-csl-sourcerygxx-4_1-13.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-13.tar.bz2  Mark Mitchell19 years
newlib-csl-sourcerygxx-4_1-14gdb-newlib-csl-sourcerygxx-4_1-14.zip  gdb-newlib-csl-sourcerygxx-4_1-14.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-14.tar.bz2  Mark Mitchell19 years
binutils-2_17gdb-binutils-2_17.zip  gdb-binutils-2_17.tar.gz  gdb-binutils-2_17.tar.bz2  Daniel Jacobowitz19 years
gdb-csl-sourcerygxx-4_1-13gdb-csl-sourcerygxx-4_1-13.zip  gdb-csl-sourcerygxx-4_1-13.tar.gz  gdb-csl-sourcerygxx-4_1-13.tar.bz2  Nathan Sidwell19 years
gdb-csl-sourcerygxx-4_1-14gdb-csl-sourcerygxx-4_1-14.zip  gdb-csl-sourcerygxx-4_1-14.tar.gz  gdb-csl-sourcerygxx-4_1-14.tar.bz2  Nathan Sidwell19 years
gdb-csl-sourcerygxx-4_1-12gdb-csl-sourcerygxx-4_1-12.zip  gdb-csl-sourcerygxx-4_1-12.tar.gz  gdb-csl-sourcerygxx-4_1-12.tar.bz2  Daniel Jacobowitz19 years
binutils-csl-sourcerygxx-4_1-12gdb-binutils-csl-sourcerygxx-4_1-12.zip  gdb-binutils-csl-sourcerygxx-4_1-12.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-12.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-3_4_4-21gdb-binutils-csl-sourcerygxx-3_4_4-21.zip  gdb-binutils-csl-sourcerygxx-3_4_4-21.tar.gz  gdb-binutils-csl-sourcerygxx-3_4_4-21.tar.bz2  nobody19 years
gdb_6_5-20060621-releasegdb_6_5-20060621-release.zip  gdb_6_5-20060621-release.tar.gz  gdb_6_5-20060621-release.tar.bz2  Joel Brobecker19 years
gdb-csl-sourcerygxx-3_4_4-21gdb-csl-sourcerygxx-3_4_4-21.zip  gdb-csl-sourcerygxx-3_4_4-21.tar.gz  gdb-csl-sourcerygxx-3_4_4-21.tar.bz2  Nathan Sidwell19 years
newlib-csl-sourcerygxx-4_1-12gdb-newlib-csl-sourcerygxx-4_1-12.zip  gdb-newlib-csl-sourcerygxx-4_1-12.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-12.tar.bz2  Mark Mitchell19 years
newlib-csl-sourcerygxx-4_1-9gdb-newlib-csl-sourcerygxx-4_1-9.zip  gdb-newlib-csl-sourcerygxx-4_1-9.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-9.tar.bz2  Mark Mitchell19 years
gdb-csl-sourcerygxx-4_1-9gdb-csl-sourcerygxx-4_1-9.zip  gdb-csl-sourcerygxx-4_1-9.tar.gz  gdb-csl-sourcerygxx-4_1-9.tar.bz2  Nathan Sidwell19 years
gdb-csl-sourcerygxx-4_1-8gdb-csl-sourcerygxx-4_1-8.zip  gdb-csl-sourcerygxx-4_1-8.tar.gz  gdb-csl-sourcerygxx-4_1-8.tar.bz2  Daniel Jacobowitz19 years
newlib-csl-sourcerygxx-4_1-8gdb-newlib-csl-sourcerygxx-4_1-8.zip  gdb-newlib-csl-sourcerygxx-4_1-8.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-8.tar.bz2  Nathan Sidwell19 years
gdb-csl-sourcerygxx-4_1-7gdb-csl-sourcerygxx-4_1-7.zip  gdb-csl-sourcerygxx-4_1-7.tar.gz  gdb-csl-sourcerygxx-4_1-7.tar.bz2  Nathan Sidwell19 years
newlib-csl-sourcerygxx-4_1-7gdb-newlib-csl-sourcerygxx-4_1-7.zip  gdb-newlib-csl-sourcerygxx-4_1-7.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-7.tar.bz2  Nathan Sidwell19 years
gdb-csl-arm-2006q1-6gdb-csl-arm-2006q1-6.zip  gdb-csl-arm-2006q1-6.tar.gz  gdb-csl-arm-2006q1-6.tar.bz2  Nathan Sidwell19 years
gdb-csl-sourcerygxx-4_1-6gdb-csl-sourcerygxx-4_1-6.zip  gdb-csl-sourcerygxx-4_1-6.tar.gz  gdb-csl-sourcerygxx-4_1-6.tar.bz2  Nathan Sidwell19 years
newlib-csl-arm-2006q1-6gdb-newlib-csl-arm-2006q1-6.zip  gdb-newlib-csl-arm-2006q1-6.tar.gz  gdb-newlib-csl-arm-2006q1-6.tar.bz2  Nathan Sidwell19 years
newlib-csl-sourcerygxx-4_1-6gdb-newlib-csl-sourcerygxx-4_1-6.zip  gdb-newlib-csl-sourcerygxx-4_1-6.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-6.tar.bz2  Nathan Sidwell19 years
binutils-csl-wrs-linux-3_4_4-22gdb-binutils-csl-wrs-linux-3_4_4-22.zip  gdb-binutils-csl-wrs-linux-3_4_4-22.tar.gz  gdb-binutils-csl-wrs-linux-3_4_4-22.tar.bz2  Joseph Myers19 years
binutils-csl-wrs-linux-3_4_4-23gdb-binutils-csl-wrs-linux-3_4_4-23.zip  gdb-binutils-csl-wrs-linux-3_4_4-23.tar.gz  gdb-binutils-csl-wrs-linux-3_4_4-23.tar.bz2  Joseph Myers19 years
binutils-csl-wrs-linux-3_4_4-24gdb-binutils-csl-wrs-linux-3_4_4-24.zip  gdb-binutils-csl-wrs-linux-3_4_4-24.tar.gz  gdb-binutils-csl-wrs-linux-3_4_4-24.tar.bz2  Joseph Myers19 years
gdb-csl-symbian-6_4_50_20060226-10gdb-csl-symbian-6_4_50_20060226-10.zip  gdb-csl-symbian-6_4_50_20060226-10.tar.gz  gdb-csl-symbian-6_4_50_20060226-10.tar.bz2  Daniel Jacobowitz19 years
gdb-csl-symbian-6_4_50_20060226-9gdb-csl-symbian-6_4_50_20060226-9.zip  gdb-csl-symbian-6_4_50_20060226-9.tar.gz  gdb-csl-symbian-6_4_50_20060226-9.tar.bz2  Daniel Jacobowitz19 years
binutils-csl-sourcerygxx-4_1-9gdb-binutils-csl-sourcerygxx-4_1-9.zip  gdb-binutils-csl-sourcerygxx-4_1-9.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-9.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-4_1-8gdb-binutils-csl-sourcerygxx-4_1-8.zip  gdb-binutils-csl-sourcerygxx-4_1-8.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-8.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-4_1-7gdb-binutils-csl-sourcerygxx-4_1-7.zip  gdb-binutils-csl-sourcerygxx-4_1-7.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-7.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-4_1-6gdb-binutils-csl-sourcerygxx-4_1-6.zip  gdb-binutils-csl-sourcerygxx-4_1-6.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-6.tar.bz2  nobody19 years
binutils-csl-arm-2006q1-6gdb-binutils-csl-arm-2006q1-6.zip  gdb-binutils-csl-arm-2006q1-6.tar.gz  gdb-binutils-csl-arm-2006q1-6.tar.bz2  nobody19 years
gdb-csl-symbian-6_4_50_20060226-8gdb-csl-symbian-6_4_50_20060226-8.zip  gdb-csl-symbian-6_4_50_20060226-8.tar.gz  gdb-csl-symbian-6_4_50_20060226-8.tar.bz2  Daniel Jacobowitz19 years
binutils-csl-coldfire-4_1-11gdb-binutils-csl-coldfire-4_1-11.zip  gdb-binutils-csl-coldfire-4_1-11.tar.gz  gdb-binutils-csl-coldfire-4_1-11.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-3_4_4-19gdb-binutils-csl-sourcerygxx-3_4_4-19.zip  gdb-binutils-csl-sourcerygxx-3_4_4-19.tar.gz  gdb-binutils-csl-sourcerygxx-3_4_4-19.tar.bz2  nobody19 years
gdb_6_5-2006-05-14-branchpointgdb_6_5-2006-05-14-branchpoint.zip  gdb_6_5-2006-05-14-branchpoint.tar.gz  gdb_6_5-2006-05-14-branchpoint.tar.bz2  nobody19 years
nickrob-async-20060513-branchpointgdb-nickrob-async-20060513-branchpoint.zip  gdb-nickrob-async-20060513-branchpoint.tar.gz  gdb-nickrob-async-20060513-branchpoint.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-4_1-5gdb-binutils-csl-sourcerygxx-4_1-5.zip  gdb-binutils-csl-sourcerygxx-4_1-5.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-5.tar.bz2  nobody19 years
binutils-csl-coldfire-4_1-10gdb-binutils-csl-coldfire-4_1-10.zip  gdb-binutils-csl-coldfire-4_1-10.tar.gz  gdb-binutils-csl-coldfire-4_1-10.tar.bz2  nobody19 years
gdb-csl-coldfire-4_1-10gdb-csl-coldfire-4_1-10.zip  gdb-csl-coldfire-4_1-10.tar.gz  gdb-csl-coldfire-4_1-10.tar.bz2  Richard Sandiford19 years
gdb-csl-coldfire-4_1-11gdb-csl-coldfire-4_1-11.zip  gdb-csl-coldfire-4_1-11.tar.gz  gdb-csl-coldfire-4_1-11.tar.bz2  Richard Sandiford19 years
gdb-csl-sourcerygxx-3_4_4-19gdb-csl-sourcerygxx-3_4_4-19.zip  gdb-csl-sourcerygxx-3_4_4-19.tar.gz  gdb-csl-sourcerygxx-3_4_4-19.tar.bz2  Richard Sandiford19 years
gdb-csl-sourcerygxx-4_1-5gdb-csl-sourcerygxx-4_1-5.zip  gdb-csl-sourcerygxx-4_1-5.tar.gz  gdb-csl-sourcerygxx-4_1-5.tar.bz2  Richard Sandiford19 years
newlib-csl-sourcerygxx-4_1-4gdb-newlib-csl-sourcerygxx-4_1-4.zip  gdb-newlib-csl-sourcerygxx-4_1-4.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-4.tar.bz2  Kazu Hirata19 years
newlib-csl-sourcerygxx-4_1-5gdb-newlib-csl-sourcerygxx-4_1-5.zip  gdb-newlib-csl-sourcerygxx-4_1-5.tar.gz  gdb-newlib-csl-sourcerygxx-4_1-5.tar.bz2  Kazu Hirata19 years
gdb-csl-sourcerygxx-4_1-4gdb-csl-sourcerygxx-4_1-4.zip  gdb-csl-sourcerygxx-4_1-4.tar.gz  gdb-csl-sourcerygxx-4_1-4.tar.bz2  Paul Brook19 years
binutils-csl-sourcerygxx-4_1-4gdb-binutils-csl-sourcerygxx-4_1-4.zip  gdb-binutils-csl-sourcerygxx-4_1-4.tar.gz  gdb-binutils-csl-sourcerygxx-4_1-4.tar.bz2  nobody19 years
msnyder-reverse-20060502-branchpointgdb-msnyder-reverse-20060502-branchpoint.zip  gdb-msnyder-reverse-20060502-branchpoint.tar.gz  gdb-msnyder-reverse-20060502-branchpoint.tar.bz2  nobody19 years
gdb-csl-morpho-4_1-4gdb-csl-morpho-4_1-4.zip  gdb-csl-morpho-4_1-4.tar.gz  gdb-csl-morpho-4_1-4.tar.bz2  nobody19 years
binutils-csl-morpho-4_1-4gdb-binutils-csl-morpho-4_1-4.zip  gdb-binutils-csl-morpho-4_1-4.tar.gz  gdb-binutils-csl-morpho-4_1-4.tar.bz2  nobody19 years
binutils-csl-wrs-linux-3_4_4-21gdb-binutils-csl-wrs-linux-3_4_4-21.zip  gdb-binutils-csl-wrs-linux-3_4_4-21.tar.gz  gdb-binutils-csl-wrs-linux-3_4_4-21.tar.bz2  Joseph Myers19 years
binutils-csl-sourcerygxx-3_4_4-17gdb-binutils-csl-sourcerygxx-3_4_4-17.zip  gdb-binutils-csl-sourcerygxx-3_4_4-17.tar.gz  gdb-binutils-csl-sourcerygxx-3_4_4-17.tar.bz2  nobody19 years
readline_5_1-import-branchpointgdb-readline_5_1-import-branchpoint.zip  gdb-readline_5_1-import-branchpoint.tar.gz  gdb-readline_5_1-import-branchpoint.tar.bz2  nobody19 years
readline-pre-51-importgdb-readline-pre-51-import.zip  gdb-readline-pre-51-import.tar.gz  gdb-readline-pre-51-import.tar.bz2  nobody19 years
readline_5_1gdb-readline_5_1.zip  gdb-readline_5_1.tar.gz  gdb-readline_5_1.tar.bz2  nobody19 years
gdb-csl-20060226-branch-merge-to-csl-symbian-1gdb-csl-20060226-branch-merge-to-csl-symbian-1.zip  gdb-csl-20060226-branch-merge-to-csl-symbian-1.tar.gz  gdb-csl-20060226-branch-merge-to-csl-symbian-1.tar.bz2  Daniel Jacobowitz19 years
gdb-csl-sourcerygxx-3_4_4-17gdb-csl-sourcerygxx-3_4_4-17.zip  gdb-csl-sourcerygxx-3_4_4-17.tar.gz  gdb-csl-sourcerygxx-3_4_4-17.tar.bz2  Daniel Jacobowitz19 years
binutils-2_17-branchpointgdb-binutils-2_17-branchpoint.zip  gdb-binutils-2_17-branchpoint.tar.gz  gdb-binutils-2_17-branchpoint.tar.bz2  nobody19 years
gdb-csl-symbian-20060226-branchpointgdb-csl-symbian-20060226-branchpoint.zip  gdb-csl-symbian-20060226-branchpoint.tar.gz  gdb-csl-symbian-20060226-branchpoint.tar.bz2  Daniel Jacobowitz19 years
gdb-csl-20060226-branch-merge-to-csl-local-1gdb-csl-20060226-branch-merge-to-csl-local-1.zip  gdb-csl-20060226-branch-merge-to-csl-local-1.tar.gz  gdb-csl-20060226-branch-merge-to-csl-local-1.tar.bz2  Daniel Jacobowitz19 years
msnyder-reverse-20060331-branchpointgdb-msnyder-reverse-20060331-branchpoint.zip  gdb-msnyder-reverse-20060331-branchpoint.tar.gz  gdb-msnyder-reverse-20060331-branchpoint.tar.bz2  nobody19 years
gdb-csl-sourcerygxx-3_4_4-25gdb-csl-sourcerygxx-3_4_4-25.zip  gdb-csl-sourcerygxx-3_4_4-25.tar.gz  gdb-csl-sourcerygxx-3_4_4-25.tar.bz2  Daniel Jacobowitz19 years
newlib-csl-20060320-branchpointgdb-newlib-csl-20060320-branchpoint.zip  gdb-newlib-csl-20060320-branchpoint.tar.gz  gdb-newlib-csl-20060320-branchpoint.tar.bz2  nobody19 years
binutils-csl-2_17-branchpointgdb-binutils-csl-2_17-branchpoint.zip  gdb-binutils-csl-2_17-branchpoint.tar.gz  gdb-binutils-csl-2_17-branchpoint.tar.bz2  nobody19 years
binutils-csl-sourcerygxx-3_4_4-25gdb-binutils-csl-sourcerygxx-3_4_4-25.zip  gdb-binutils-csl-sourcerygxx-3_4_4-25.tar.gz  gdb-binutils-csl-sourcerygxx-3_4_4-25.tar.bz2  Carlos O'Donell19 years
binutils-csl-sourcerygxx-3_4_4-32gdb-binutils-csl-sourcerygxx-3_4_4-32.zip  gdb-binutils-csl-sourcerygxx-3_4_4-32.tar.gz  gdb-binutils-csl-sourcerygxx-3_4_4-32.tar.bz2  Carlos O'Donell19 years
gdb-csl-available-20060303-branchpointgdb-csl-available-20060303-branchpoint.zip  gdb-csl-available-20060303-branchpoint.tar.gz  gdb-csl-available-20060303-branchpoint.tar.bz2  nobody19 years
gdb-csl-20060226-branchpointgdb-csl-20060226-branchpoint.zip  gdb-csl-20060226-branchpoint.tar.gz  gdb-csl-20060226-branchpoint.tar.bz2  nobody19 years
binutils-csl-wrs-linux-3_4_4-20gdb-binutils-csl-wrs-linux-3_4_4-20.zip  gdb-binutils-csl-wrs-linux-3_4_4-20.tar.gz  gdb-binutils-csl-wrs-linux-3_4_4-20.tar.bz2  Joseph Myers19 years
newlib-1_14_0gdb-newlib-1_14_0.zip  gdb-newlib-1_14_0.tar.gz  gdb-newlib-1_14_0.tar.bz2  nobody19 years
gdb_6_4-20051202-releasegdb_6_4-20051202-release.zip  gdb_6_4-20051202-release.tar.gz  gdb_6_4-20051202-release.tar.bz2  Joel Brobecker19 years
msnyder-fork-checkpoint-branchpointgdb-msnyder-fork-checkpoint-branchpoint.zip  gdb-msnyder-fork-checkpoint-branchpoint.tar.gz  gdb-msnyder-fork-checkpoint-branchpoint.tar.bz2  nobody19 years
gdb-csl-gxxpro-6_3-branchpointgdb-csl-gxxpro-6_3-branchpoint.zip  gdb-csl-gxxpro-6_3-branchpoint.tar.gz  gdb-csl-gxxpro-6_3-branchpoint.tar.bz2  nobody19 years
gdb_6_4-2005-11-01-branchpointgdb_6_4-2005-11-01-branchpoint.zip  gdb_6_4-2005-11-01-branchpoint.tar.gz  gdb_6_4-2005-11-01-branchpoint.tar.bz2  nobody19 years
gdb-csl-arm-20051020-branchpointgdb-csl-arm-20051020-branchpoint.zip  gdb-csl-arm-20051020-branchpoint.tar.gz  gdb-csl-arm-20051020-branchpoint.tar.bz2  nobody19 years
binutils-2_16_1gdb-binutils-2_16_1.zip  gdb-binutils-2_16_1.tar.gz  gdb-binutils-2_16_1.tar.bz2  Daniel Jacobowitz20 years
binutils-csl-gxxpro-3_4-branchpointgdb-binutils-csl-gxxpro-3_4-branchpoint.zip  gdb-binutils-csl-gxxpro-3_4-branchpoint.tar.gz  gdb-binutils-csl-gxxpro-3_4-branchpoint.tar.bz2  Daniel Jacobowitz20 years
msnyder-tracepoint-checkpoint-branchpointgdb-msnyder-tracepoint-checkpoint-branchpoint.zip  gdb-msnyder-tracepoint-checkpoint-branchpoint.tar.gz  gdb-msnyder-tracepoint-checkpoint-branchpoint.tar.bz2  nobody20 years
binutils-2_16gdb-binutils-2_16.zip  gdb-binutils-2_16.tar.gz  gdb-binutils-2_16.tar.bz2  Daniel Jacobowitz20 years
binutils-csl-arm-2005q1bgdb-binutils-csl-arm-2005q1b.zip  gdb-binutils-csl-arm-2005q1b.tar.gz  gdb-binutils-csl-arm-2005q1b.tar.bz2  Paul Brook20 years
gdb-csl-arm-20050325-2005-q1bgdb-csl-arm-20050325-2005-q1b.zip  gdb-csl-arm-20050325-2005-q1b.tar.gz  gdb-csl-arm-20050325-2005-q1b.tar.bz2  Paul Brook20 years
newlib-csl-arm-2005-q1bgdb-newlib-csl-arm-2005-q1b.zip  gdb-newlib-csl-arm-2005-q1b.tar.gz  gdb-newlib-csl-arm-2005-q1b.tar.bz2  nobody20 years
newlib-csl-arm-2005-q1agdb-newlib-csl-arm-2005-q1a.zip  gdb-newlib-csl-arm-2005-q1a.tar.gz  gdb-newlib-csl-arm-2005-q1a.tar.bz2  nobody20 years
binutils-csl-arm-2005q1agdb-binutils-csl-arm-2005q1a.zip  gdb-binutils-csl-arm-2005q1a.tar.gz  gdb-binutils-csl-arm-2005q1a.tar.bz2  Julian Brown20 years
gdb-csl-arm-20050325-2005-q1agdb-csl-arm-20050325-2005-q1a.zip  gdb-csl-arm-20050325-2005-q1a.tar.gz  gdb-csl-arm-20050325-2005-q1a.tar.bz2  Paul Brook20 years
csl-arm-20050325-branchpointgdb-csl-arm-20050325-branchpoint.zip  gdb-csl-arm-20050325-branchpoint.tar.gz  gdb-csl-arm-20050325-branchpoint.tar.bz2  nobody20 years
binutils-csl-arm-2005q1-branchpointgdb-binutils-csl-arm-2005q1-branchpoint.zip  gdb-binutils-csl-arm-2005q1-branchpoint.tar.gz  gdb-binutils-csl-arm-2005q1-branchpoint.tar.bz2  Mark Mitchell20 years
newlib-1_13_0gdb-newlib-1_13_0.zip  gdb-newlib-1_13_0.tar.gz  gdb-newlib-1_13_0.tar.bz2  nobody20 years
binutils-2_16-branchpointgdb-binutils-2_16-branchpoint.zip  gdb-binutils-2_16-branchpoint.tar.gz  gdb-binutils-2_16-branchpoint.tar.bz2  nobody20 years
gdb-post-i18n-errorwarning-20050211gdb-post-i18n-errorwarning-20050211.zip  gdb-post-i18n-errorwarning-20050211.tar.gz  gdb-post-i18n-errorwarning-20050211.tar.bz2  nobody20 years
gdb-pre-i18n-errorwarning-20050211gdb-pre-i18n-errorwarning-20050211.zip  gdb-pre-i18n-errorwarning-20050211.tar.gz  gdb-pre-i18n-errorwarning-20050211.tar.bz2  nobody20 years
gdb_6_3-20041109-releasegdb_6_3-20041109-release.zip  gdb_6_3-20041109-release.tar.gz  gdb_6_3-20041109-release.tar.bz2  Andrew Cagney20 years
csl-arm-2004-q3dgdb-csl-arm-2004-q3d.zip  gdb-csl-arm-2004-q3d.tar.gz  gdb-csl-arm-2004-q3d.tar.bz2  nobody20 years
jimb-rda-nptl-branchpointgdb-jimb-rda-nptl-branchpoint.zip  gdb-jimb-rda-nptl-branchpoint.tar.gz  gdb-jimb-rda-nptl-branchpoint.tar.bz2  nobody20 years
drow_intercu-merge-20040921gdb-drow_intercu-merge-20040921.zip  gdb-drow_intercu-merge-20040921.tar.gz  gdb-drow_intercu-merge-20040921.tar.bz2  nobody20 years
drow_intercu-merge-20040915gdb-drow_intercu-merge-20040915.zip  gdb-drow_intercu-merge-20040915.tar.gz  gdb-drow_intercu-merge-20040915.tar.bz2  nobody20 years
gdb_6_3-20041019-branchpointgdb_6_3-20041019-branchpoint.zip  gdb_6_3-20041019-branchpoint.tar.gz  gdb_6_3-20041019-branchpoint.tar.bz2  nobody20 years
csl-arm-2004-q3gdb-csl-arm-2004-q3.zip  gdb-csl-arm-2004-q3.tar.gz  gdb-csl-arm-2004-q3.tar.bz2  nobody20 years
gdb_6_2-20040730-releasegdb_6_2-20040730-release.zip  gdb_6_2-20040730-release.tar.gz  gdb_6_2-20040730-release.tar.bz2  Andrew Cagney21 years
jimb-gdb_6_2-e500-branchpointgdb-jimb-gdb_6_2-e500-branchpoint.zip  gdb-jimb-gdb_6_2-e500-branchpoint.tar.gz  gdb-jimb-gdb_6_2-e500-branchpoint.tar.bz2  Andrew Cagney21 years
gdb_6_2-2004-07-10-gmt-branchpointgdb_6_2-2004-07-10-gmt-branchpoint.zip  gdb_6_2-2004-07-10-gmt-branchpoint.tar.gz  gdb_6_2-2004-07-10-gmt-branchpoint.tar.bz2  nobody21 years
gdb_6_1_1-20040616-releasegdb_6_1_1-20040616-release.zip  gdb_6_1_1-20040616-release.tar.gz  gdb_6_1_1-20040616-release.tar.bz2  nobody21 years
gprof-post-ansify-2004-05-26gdb-gprof-post-ansify-2004-05-26.zip  gdb-gprof-post-ansify-2004-05-26.tar.gz  gdb-gprof-post-ansify-2004-05-26.tar.bz2  nobody21 years
gprof-pre-ansify-2004-05-26gdb-gprof-pre-ansify-2004-05-26.zip  gdb-gprof-pre-ansify-2004-05-26.tar.gz  gdb-gprof-pre-ansify-2004-05-26.tar.bz2  nobody21 years
binutils-2_15gdb-binutils-2_15.zip  gdb-binutils-2_15.tar.gz  gdb-binutils-2_15.tar.bz2  Daniel Jacobowitz21 years
csl-arm-2004-q1agdb-csl-arm-2004-q1a.zip  gdb-csl-arm-2004-q1a.tar.gz  gdb-csl-arm-2004-q1a.tar.bz2  nobody21 years
csl-arm-2004-q1gdb-csl-arm-2004-q1.zip  gdb-csl-arm-2004-q1.tar.gz  gdb-csl-arm-2004-q1.tar.bz2  nobody21 years
gdb_6_1-2004-04-05-releasegdb_6_1-2004-04-05-release.zip  gdb_6_1-2004-04-05-release.tar.gz  gdb_6_1-2004-04-05-release.tar.bz2  nobody21 years
drow_intercu-merge-20040402gdb-drow_intercu-merge-20040402.zip  gdb-drow_intercu-merge-20040402.tar.gz  gdb-drow_intercu-merge-20040402.tar.bz2  nobody21 years
drow_intercu-merge-20040327gdb-drow_intercu-merge-20040327.zip  gdb-drow_intercu-merge-20040327.tar.gz  gdb-drow_intercu-merge-20040327.tar.bz2  nobody21 years
cagney_tramp-20040321-mergepointgdb-cagney_tramp-20040321-mergepoint.zip  gdb-cagney_tramp-20040321-mergepoint.tar.gz  gdb-cagney_tramp-20040321-mergepoint.tar.bz2  nobody21 years
ezannoni_pie-20040323-branchpointgdb-ezannoni_pie-20040323-branchpoint.zip  gdb-ezannoni_pie-20040323-branchpoint.tar.gz  gdb-ezannoni_pie-20040323-branchpoint.tar.bz2  nobody21 years
cagney_tramp-20040309-branchpointgdb-cagney_tramp-20040309-branchpoint.zip  gdb-cagney_tramp-20040309-branchpoint.tar.gz  gdb-cagney_tramp-20040309-branchpoint.tar.bz2  nobody21 years
gdb_6_1-2004-03-01-gmt-branchpointgdb_6_1-2004-03-01-gmt-branchpoint.zip  gdb_6_1-2004-03-01-gmt-branchpoint.tar.gz  gdb_6_1-2004-03-01-gmt-branchpoint.tar.bz2  nobody21 years
drow_intercu-20040221-branchpointgdb-drow_intercu-20040221-branchpoint.zip  gdb-drow_intercu-20040221-branchpoint.tar.gz  gdb-drow_intercu-20040221-branchpoint.tar.bz2  nobody21 years
binutils-2_15-branchpointgdb-binutils-2_15-branchpoint.zip  gdb-binutils-2_15-branchpoint.tar.gz  gdb-binutils-2_15-branchpoint.tar.bz2  nobody21 years
drow-cplus-merge-20040208gdb-drow-cplus-merge-20040208.zip  gdb-drow-cplus-merge-20040208.tar.gz  gdb-drow-cplus-merge-20040208.tar.bz2  nobody21 years
cagney_bfdfile-20040213-branchpointgdb-cagney_bfdfile-20040213-branchpoint.zip  gdb-cagney_bfdfile-20040213-branchpoint.tar.gz  gdb-cagney_bfdfile-20040213-branchpoint.tar.bz2  nobody21 years
newlib-1_12_0gdb-newlib-1_12_0.zip  gdb-newlib-1_12_0.tar.gz  gdb-newlib-1_12_0.tar.bz2  nobody21 years
carlton_dictionary-20040126-mergegdb-carlton_dictionary-20040126-merge.zip  gdb-carlton_dictionary-20040126-merge.tar.gz  gdb-carlton_dictionary-20040126-merge.tar.bz2  nobody21 years
drow-cplus-merge-20040113gdb-drow-cplus-merge-20040113.zip  gdb-drow-cplus-merge-20040113.tar.gz  gdb-drow-cplus-merge-20040113.tar.bz2  nobody21 years
drow-cplus-merge-20031224gdb-drow-cplus-merge-20031224.zip  gdb-drow-cplus-merge-20031224.tar.gz  gdb-drow-cplus-merge-20031224.tar.bz2  nobody21 years
drow-cplus-merge-20031220gdb-drow-cplus-merge-20031220.zip  gdb-drow-cplus-merge-20031220.tar.gz  gdb-drow-cplus-merge-20031220.tar.bz2  nobody21 years
drow-cplus-merge-20031214gdb-drow-cplus-merge-20031214.zip  gdb-drow-cplus-merge-20031214.tar.gz  gdb-drow-cplus-merge-20031214.tar.bz2  nobody21 years
csl-arm-2003-q4gdb-csl-arm-2003-q4.zip  gdb-csl-arm-2003-q4.tar.gz  gdb-csl-arm-2003-q4.tar.bz2  nobody21 years
carlton_dictionary-20031215-mergegdb-carlton_dictionary-20031215-merge.zip  gdb-carlton_dictionary-20031215-merge.tar.gz  gdb-carlton_dictionary-20031215-merge.tar.bz2  nobody21 years
carlton-dictionary-20031111-mergegdb-carlton-dictionary-20031111-merge.zip  gdb-carlton-dictionary-20031111-merge.tar.gz  gdb-carlton-dictionary-20031111-merge.tar.bz2  nobody21 years
cagney_bigcore-20040122-branchpointgdb-cagney_bigcore-20040122-branchpoint.zip  gdb-cagney_bigcore-20040122-branchpoint.tar.gz  gdb-cagney_bigcore-20040122-branchpoint.tar.bz2  nobody21 years
kseitz_interps-20021105-mergegdb-kseitz_interps-20021105-merge.zip  gdb-kseitz_interps-20021105-merge.tar.gz  gdb-kseitz_interps-20021105-merge.tar.bz2  nobody21 years
kseitz_interps-20021103-mergegdb-kseitz_interps-20021103-merge.zip  gdb-kseitz_interps-20021103-merge.tar.gz  gdb-kseitz_interps-20021103-merge.tar.bz2  nobody21 years
carlton_dictionary-20021115-mergegdb-carlton_dictionary-20021115-merge.zip  gdb-carlton_dictionary-20021115-merge.tar.gz  gdb-carlton_dictionary-20021115-merge.tar.bz2  nobody21 years
gdb_6_0-2003-10-04-releasegdb_6_0-2003-10-04-release.zip  gdb_6_0-2003-10-04-release.tar.gz  gdb_6_0-2003-10-04-release.tar.bz2  gdbadmin21 years
carlton_dictionary-20030917-mergegdb-carlton_dictionary-20030917-merge.zip  gdb-carlton_dictionary-20030917-merge.tar.gz  gdb-carlton_dictionary-20030917-merge.tar.bz2  nobody21 years
kettenis_sparc-20030918-branchpointgdb-kettenis_sparc-20030918-branchpoint.zip  gdb-kettenis_sparc-20030918-branchpoint.tar.gz  gdb-kettenis_sparc-20030918-branchpoint.tar.bz2  nobody21 years
ezannoni_pie-20030916-branchpointgdb-ezannoni_pie-20030916-branchpoint.zip  gdb-ezannoni_pie-20030916-branchpoint.tar.gz  gdb-ezannoni_pie-20030916-branchpoint.tar.bz2  nobody21 years
carlton_dictionary-20030805-mergegdb-carlton_dictionary-20030805-merge.zip  gdb-carlton_dictionary-20030805-merge.tar.gz  gdb-carlton_dictionary-20030805-merge.tar.bz2  nobody22 years
cagney_x86i386-20030821-branchpointgdb-cagney_x86i386-20030821-branchpoint.zip  gdb-cagney_x86i386-20030821-branchpoint.tar.gz  gdb-cagney_x86i386-20030821-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20030627-mergegdb-carlton_dictionary-20030627-merge.zip  gdb-carlton_dictionary-20030627-merge.tar.gz  gdb-carlton_dictionary-20030627-merge.tar.bz2  nobody22 years
gdb_6_0-2003-06-23-branchpointgdb_6_0-2003-06-23-branchpoint.zip  gdb_6_0-2003-06-23-branchpoint.tar.gz  gdb_6_0-2003-06-23-branchpoint.tar.bz2  nobody22 years
jimb-ppc64-linux-20030613-branchpointgdb-jimb-ppc64-linux-20030613-branchpoint.zip  gdb-jimb-ppc64-linux-20030613-branchpoint.tar.gz  gdb-jimb-ppc64-linux-20030613-branchpoint.tar.bz2  nobody22 years
binutils-2_14gdb-binutils-2_14.zip  gdb-binutils-2_14.tar.gz  gdb-binutils-2_14.tar.bz2  Daniel Jacobowitz22 years
cagney_convert-20030606-branchpointgdb-cagney_convert-20030606-branchpoint.zip  gdb-cagney_convert-20030606-branchpoint.tar.gz  gdb-cagney_convert-20030606-branchpoint.tar.bz2  nobody22 years
jimb-ppc64-linux-20030528-branchpointgdb-jimb-ppc64-linux-20030528-branchpoint.zip  gdb-jimb-ppc64-linux-20030528-branchpoint.tar.gz  gdb-jimb-ppc64-linux-20030528-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20030523-mergegdb-carlton_dictionary-20030523-merge.zip  gdb-carlton_dictionary-20030523-merge.tar.gz  gdb-carlton_dictionary-20030523-merge.tar.bz2  nobody22 years
kettenis_i386newframe-20030517-mergepointgdb-kettenis_i386newframe-20030517-mergepoint.zip  gdb-kettenis_i386newframe-20030517-mergepoint.tar.gz  gdb-kettenis_i386newframe-20030517-mergepoint.tar.bz2  nobody22 years
cagney_fileio-20030521-branchpointgdb-cagney_fileio-20030521-branchpoint.zip  gdb-cagney_fileio-20030521-branchpoint.tar.gz  gdb-cagney_fileio-20030521-branchpoint.tar.bz2  nobody22 years
cagney_writestrings-20030508-branchpointgdb-cagney_writestrings-20030508-branchpoint.zip  gdb-cagney_writestrings-20030508-branchpoint.tar.gz  gdb-cagney_writestrings-20030508-branchpoint.tar.bz2  nobody22 years
kettenis_i386newframe-20030504-mergepointgdb-kettenis_i386newframe-20030504-mergepoint.zip  gdb-kettenis_i386newframe-20030504-mergepoint.tar.gz  gdb-kettenis_i386newframe-20030504-mergepoint.tar.bz2  nobody22 years
jimb-ppc64-linux-20030509-branchpointgdb-jimb-ppc64-linux-20030509-branchpoint.zip  gdb-jimb-ppc64-linux-20030509-branchpoint.tar.gz  gdb-jimb-ppc64-linux-20030509-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20030430-mergegdb-carlton_dictionary-20030430-merge.zip  gdb-carlton_dictionary-20030430-merge.tar.gz  gdb-carlton_dictionary-20030430-merge.tar.bz2  nobody22 years
binutils-2_14-branchpointgdb-binutils-2_14-branchpoint.zip  gdb-binutils-2_14-branchpoint.tar.gz  gdb-binutils-2_14-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20030416-mergegdb-carlton_dictionary-20030416-merge.zip  gdb-carlton_dictionary-20030416-merge.tar.gz  gdb-carlton_dictionary-20030416-merge.tar.bz2  nobody22 years
kettenis_i386newframe-20030419-branchpointgdb-kettenis_i386newframe-20030419-branchpoint.zip  gdb-kettenis_i386newframe-20030419-branchpoint.tar.gz  gdb-kettenis_i386newframe-20030419-branchpoint.tar.bz2  nobody22 years
cagney_frameaddr-20030409-mergepointgdb-cagney_frameaddr-20030409-mergepoint.zip  gdb-cagney_frameaddr-20030409-mergepoint.tar.gz  gdb-cagney_frameaddr-20030409-mergepoint.tar.bz2  nobody22 years
kettenis_i386newframe-20030406-branchpointgdb-kettenis_i386newframe-20030406-branchpoint.zip  gdb-kettenis_i386newframe-20030406-branchpoint.tar.gz  gdb-kettenis_i386newframe-20030406-branchpoint.tar.bz2  nobody22 years
cagney_frameaddr-20030403-branchpointgdb-cagney_frameaddr-20030403-branchpoint.zip  gdb-cagney_frameaddr-20030403-branchpoint.tar.gz  gdb-cagney_frameaddr-20030403-branchpoint.tar.bz2  nobody22 years
cagney_framebase-20030330-mergepointgdb-cagney_framebase-20030330-mergepoint.zip  gdb-cagney_framebase-20030330-mergepoint.tar.gz  gdb-cagney_framebase-20030330-mergepoint.tar.bz2  nobody22 years
cagney_framebase-20030326-branchpointgdb-cagney_framebase-20030326-branchpoint.zip  gdb-cagney_framebase-20030326-branchpoint.tar.gz  gdb-cagney_framebase-20030326-branchpoint.tar.bz2  nobody22 years
kettenis-i386newframe-20030316-mergepointgdb-kettenis-i386newframe-20030316-mergepoint.zip  gdb-kettenis-i386newframe-20030316-mergepoint.tar.gz  gdb-kettenis-i386newframe-20030316-mergepoint.tar.bz2  nobody22 years
cagney_lazyid-20030317-branchpointgdb-cagney_lazyid-20030317-branchpoint.zip  gdb-cagney_lazyid-20030317-branchpoint.tar.gz  gdb-cagney_lazyid-20030317-branchpoint.tar.bz2  nobody22 years
offbyone-20030313-branchpointgdb-offbyone-20030313-branchpoint.zip  gdb-offbyone-20030313-branchpoint.tar.gz  gdb-offbyone-20030313-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20030305-mergegdb-carlton_dictionary-20030305-merge.zip  gdb-carlton_dictionary-20030305-merge.tar.gz  gdb-carlton_dictionary-20030305-merge.tar.bz2  nobody22 years
kettenis-i386newframe-20030308-branchpointgdb-kettenis-i386newframe-20030308-branchpoint.zip  gdb-kettenis-i386newframe-20030308-branchpoint.tar.gz  gdb-kettenis-i386newframe-20030308-branchpoint.tar.bz2  nobody22 years
cagney_offbyone-20030303-branchpointgdb-cagney_offbyone-20030303-branchpoint.zip  gdb-cagney_offbyone-20030303-branchpoint.tar.gz  gdb-cagney_offbyone-20030303-branchpoint.tar.bz2  nobody22 years
w32api-2_2gdb-w32api-2_2.zip  gdb-w32api-2_2.tar.gz  gdb-w32api-2_2.tar.bz2  nobody22 years
carlton_dictionary-20030207-mergegdb-carlton_dictionary-20030207-merge.zip  gdb-carlton_dictionary-20030207-merge.tar.gz  gdb-carlton_dictionary-20030207-merge.tar.bz2  nobody22 years
mingw-runtime-2_4gdb-mingw-runtime-2_4.zip  gdb-mingw-runtime-2_4.tar.gz  gdb-mingw-runtime-2_4.tar.bz2  nobody22 years
interps-20030203-mergepointgdb-interps-20030203-mergepoint.zip  gdb-interps-20030203-mergepoint.tar.gz  gdb-interps-20030203-mergepoint.tar.bz2  nobody22 years
interps-20030202-branchpointgdb-interps-20030202-branchpoint.zip  gdb-interps-20030202-branchpoint.tar.gz  gdb-interps-20030202-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20021223-mergegdb-carlton_dictionary-20021223-merge.zip  gdb-carlton_dictionary-20021223-merge.tar.gz  gdb-carlton_dictionary-20021223-merge.tar.bz2  nobody22 years
cagney-unwind-20030108-branchpointgdb-cagney-unwind-20030108-branchpoint.zip  gdb-cagney-unwind-20030108-branchpoint.tar.gz  gdb-cagney-unwind-20030108-branchpoint.tar.bz2  nobody22 years
binutils-2_13_2_1gdb-binutils-2_13_2_1.zip  gdb-binutils-2_13_2_1.tar.gz  gdb-binutils-2_13_2_1.tar.bz2  nobody22 years
binutils-2_13_2gdb-binutils-2_13_2.zip  gdb-binutils-2_13_2.tar.gz  gdb-binutils-2_13_2.tar.bz2  nobody22 years
newlib-1_11_0gdb-newlib-1_11_0.zip  gdb-newlib-1_11_0.tar.gz  gdb-newlib-1_11_0.tar.bz2  nobody22 years
gdb_5_3-2002-12-12-releasegdb_5_3-2002-12-12-release.zip  gdb_5_3-2002-12-12-release.tar.gz  gdb_5_3-2002-12-12-release.tar.bz2  gdbadmin22 years
binutils-2_13_1gdb-binutils-2_13_1.zip  gdb-binutils-2_13_1.tar.gz  gdb-binutils-2_13_1.tar.bz2  nobody22 years
carlton_dictionary-20021025-mergegdb-carlton_dictionary-20021025-merge.zip  gdb-carlton_dictionary-20021025-merge.tar.gz  gdb-carlton_dictionary-20021025-merge.tar.bz2  nobody22 years
drow-cplus-merge-20021025gdb-drow-cplus-merge-20021025.zip  gdb-drow-cplus-merge-20021025.tar.gz  gdb-drow-cplus-merge-20021025.tar.bz2  nobody22 years
drow-cplus-merge-20021020gdb-drow-cplus-merge-20021020.zip  gdb-drow-cplus-merge-20021020.tar.gz  gdb-drow-cplus-merge-20021020.tar.bz2  nobody22 years
jimb-dwarf-compression-021023-branchpointgdb-jimb-dwarf-compression-021023-branchpoint.zip  gdb-jimb-dwarf-compression-021023-branchpoint.tar.gz  gdb-jimb-dwarf-compression-021023-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20021011-mergegdb-carlton_dictionary-20021011-merge.zip  gdb-carlton_dictionary-20021011-merge.tar.gz  gdb-carlton_dictionary-20021011-merge.tar.bz2  nobody22 years
kseitz_interps-20020930-mergegdb-kseitz_interps-20020930-merge.zip  gdb-kseitz_interps-20020930-merge.tar.gz  gdb-kseitz_interps-20020930-merge.tar.bz2  nobody22 years
drow-cplus-branchpointgdb-drow-cplus-branchpoint.zip  gdb-drow-cplus-branchpoint.tar.gz  gdb-drow-cplus-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20020927-mergegdb-carlton_dictionary-20020927-merge.zip  gdb-carlton_dictionary-20020927-merge.tar.gz  gdb-carlton_dictionary-20020927-merge.tar.bz2  nobody22 years
tcltk840-20020924-branchpointgdb-tcltk840-20020924-branchpoint.zip  gdb-tcltk840-20020924-branchpoint.tar.gz  gdb-tcltk840-20020924-branchpoint.tar.bz2  nobody22 years
carlton_dictionary-20020920-branchpointgdb-carlton_dictionary-20020920-branchpoint.zip  gdb-carlton_dictionary-20020920-branchpoint.tar.gz  gdb-carlton_dictionary-20020920-branchpoint.tar.bz2  nobody22 years
sid-20020905-branchpointgdb-sid-20020905-branchpoint.zip  gdb-sid-20020905-branchpoint.tar.gz  gdb-sid-20020905-branchpoint.tar.bz2  nobody23 years
kseitz_interps-20020829-mergegdb-kseitz_interps-20020829-merge.zip  gdb-kseitz_interps-20020829-merge.tar.gz  gdb-kseitz_interps-20020829-merge.tar.bz2  nobody23 years
gdb_5_3-2002-09-04-branchpointgdb_5_3-2002-09-04-branchpoint.zip  gdb_5_3-2002-09-04-branchpoint.tar.gz  gdb_5_3-2002-09-04-branchpoint.tar.bz2  nobody23 years
readline-pre-43-importgdb-readline-pre-43-import.zip  gdb-readline-pre-43-import.tar.gz  gdb-readline-pre-43-import.tar.bz2  nobody23 years
cagney_sysregs-20020825-branchpointgdb-cagney_sysregs-20020825-branchpoint.zip  gdb-cagney_sysregs-20020825-branchpoint.tar.gz  gdb-cagney_sysregs-20020825-branchpoint.tar.bz2  nobody23 years
readline_4_3-import-branchpointgdb-readline_4_3-import-branchpoint.zip  gdb-readline_4_3-import-branchpoint.tar.gz  gdb-readline_4_3-import-branchpoint.tar.bz2  nobody23 years
readline_4_3gdb-readline_4_3.zip  gdb-readline_4_3.tar.gz  gdb-readline_4_3.tar.bz2  nobody23 years
binutils-2_13gdb-binutils-2_13.zip  gdb-binutils-2_13.tar.gz  gdb-binutils-2_13.tar.bz2  nobody23 years
gdb_5_2_1-2002-07-23-releasegdb_5_2_1-2002-07-23-release.zip  gdb_5_2_1-2002-07-23-release.tar.gz  gdb_5_2_1-2002-07-23-release.tar.bz2  gdbadmin23 years
binutils-2_13-branchpointgdb-binutils-2_13-branchpoint.zip  gdb-binutils-2_13-branchpoint.tar.gz  gdb-binutils-2_13-branchpoint.tar.bz2  nobody23 years
kseitz_interps-20020528-branchpointgdb-kseitz_interps-20020528-branchpoint.zip  gdb-kseitz_interps-20020528-branchpoint.tar.gz  gdb-kseitz_interps-20020528-branchpoint.tar.bz2  nobody23 years
cagney_regbuf-20020515-branchpointgdb-cagney_regbuf-20020515-branchpoint.zip  gdb-cagney_regbuf-20020515-branchpoint.tar.gz  gdb-cagney_regbuf-20020515-branchpoint.tar.bz2  nobody23 years
binutils-2_12_1gdb-binutils-2_12_1.zip  gdb-binutils-2_12_1.tar.gz  gdb-binutils-2_12_1.tar.bz2  nobody23 years
jimb-macro-020506-branchpointgdb-jimb-macro-020506-branchpoint.zip  gdb-jimb-macro-020506-branchpoint.tar.gz  gdb-jimb-macro-020506-branchpoint.tar.bz2  nobody23 years
gdb_5_2-2002-04-29-releasegdb_5_2-2002-04-29-release.zip  gdb_5_2-2002-04-29-release.tar.gz  gdb_5_2-2002-04-29-release.tar.bz2  nobody23 years
binutils-2_12gdb-binutils-2_12.zip  gdb-binutils-2_12.tar.gz  gdb-binutils-2_12.tar.bz2  nobody23 years
gdb_5_2-2002-03-03-branchpointgdb_5_2-2002-03-03-branchpoint.zip  gdb_5_2-2002-03-03-branchpoint.tar.gz  gdb_5_2-2002-03-03-branchpoint.tar.bz2  nobody23 years
newlib-1_10_0gdb-newlib-1_10_0.zip  gdb-newlib-1_10_0.tar.gz  gdb-newlib-1_10_0.tar.bz2  nobody23 years
binutils-2_12-branchpointgdb-binutils-2_12-branchpoint.zip  gdb-binutils-2_12-branchpoint.tar.gz  gdb-binutils-2_12-branchpoint.tar.bz2  nobody23 years
gdb_5_1_1-2002-01-24-releasegdb_5_1_1-2002-01-24-release.zip  gdb_5_1_1-2002-01-24-release.tar.gz  gdb_5_1_1-2002-01-24-release.tar.bz2  gdbadmin23 years
gdb_5_1_0_1-2002-01-03-releasegdb_5_1_0_1-2002-01-03-release.zip  gdb_5_1_0_1-2002-01-03-release.tar.gz  gdb_5_1_0_1-2002-01-03-release.tar.bz2  gdbadmin23 years
cygnus_cvs_20020108_pregdb-cygnus_cvs_20020108_pre.zip  gdb-cygnus_cvs_20020108_pre.tar.gz  gdb-cygnus_cvs_20020108_pre.tar.bz2  nobody23 years
gettext_0_10_35gdb-gettext_0_10_35.zip  gdb-gettext_0_10_35.tar.gz  gdb-gettext_0_10_35.tar.bz2  nobody23 years
gdb_5_1-2001-11-21-releasegdb_5_1-2001-11-21-release.zip  gdb_5_1-2001-11-21-release.tar.gz  gdb_5_1-2001-11-21-release.tar.bz2  gdbadmin23 years
gdb_5_1_0_1-2002-01-03-branchpointgdb_5_1_0_1-2002-01-03-branchpoint.zip  gdb_5_1_0_1-2002-01-03-branchpoint.tar.gz  gdb_5_1_0_1-2002-01-03-branchpoint.tar.bz2  gdbadmin23 years
gdb_s390-2001-09-26-branchpointgdb_s390-2001-09-26-branchpoint.zip  gdb_s390-2001-09-26-branchpoint.tar.gz  gdb_s390-2001-09-26-branchpoint.tar.bz2  Andrew Cagney23 years
gdb_5_1-2001-07-29-branchpointgdb_5_1-2001-07-29-branchpoint.zip  gdb_5_1-2001-07-29-branchpoint.tar.gz  gdb_5_1-2001-07-29-branchpoint.tar.bz2  nobody24 years
gdb-pre-ptid_t-2001-05-03gdb-pre-ptid_t-2001-05-03.zip  gdb-pre-ptid_t-2001-05-03.tar.gz  gdb-pre-ptid_t-2001-05-03.tar.bz2  nobody24 years
gdb-post-ptid_t-2001-05-03gdb-post-ptid_t-2001-05-03.zip  gdb-post-ptid_t-2001-05-03.tar.gz  gdb-post-ptid_t-2001-05-03.tar.bz2  nobody24 years
dberlin-typesystem-branchpointgdb-dberlin-typesystem-branchpoint.zip  gdb-dberlin-typesystem-branchpoint.tar.gz  gdb-dberlin-typesystem-branchpoint.tar.bz2  nobody24 years
binutils-2_11_2gdb-binutils-2_11_2.zip  gdb-binutils-2_11_2.tar.gz  gdb-binutils-2_11_2.tar.bz2  nobody24 years
binutils-2_11_1gdb-binutils-2_11_1.zip  gdb-binutils-2_11_1.tar.gz  gdb-binutils-2_11_1.tar.bz2  nobody24 years
binutils-2_11gdb-binutils-2_11.zip  gdb-binutils-2_11.tar.gz  gdb-binutils-2_11.tar.bz2  David O'Brien24 years
jimb_gnu_v3_branchpointgdb-jimb_gnu_v3_branchpoint.zip  gdb-jimb_gnu_v3_branchpoint.tar.gz  gdb-jimb_gnu_v3_branchpoint.tar.bz2  nobody24 years
x86_64versiong3gdb-x86_64versiong3.zip  gdb-x86_64versiong3.tar.gz  gdb-x86_64versiong3.tar.bz2  nobody24 years
newlib-1_9_0gdb-newlib-1_9_0.zip  gdb-newlib-1_9_0.tar.gz  gdb-newlib-1_9_0.tar.bz2  nobody24 years
insight-precleanup-2001-01-01gdb-insight-precleanup-2001-01-01.zip  gdb-insight-precleanup-2001-01-01.tar.gz  gdb-insight-precleanup-2001-01-01.tar.bz2  nobody24 years
binutils-2_10_1gdb-binutils-2_10_1.zip  gdb-binutils-2_10_1.tar.gz  gdb-binutils-2_10_1.tar.bz2  Phil Blundell24 years
gdb-post-protoization-2000-07-29gdb-post-protoization-2000-07-29.zip  gdb-post-protoization-2000-07-29.tar.gz  gdb-post-protoization-2000-07-29.tar.bz2  nobody25 years
gdb-pre-protoization-2000-07-29gdb-pre-protoization-2000-07-29.zip  gdb-pre-protoization-2000-07-29.tar.gz  gdb-pre-protoization-2000-07-29.tar.bz2  nobody25 years
readline_4_1gdb-readline_4_1.zip  gdb-readline_4_1.tar.gz  gdb-readline_4_1.tar.bz2  nobody25 years
readline_4_0gdb-readline_4_0.zip  gdb-readline_4_0.tar.gz  gdb-readline_4_0.tar.bz2  Elena Zannoni25 years
readline-pre-41-importgdb-readline-pre-41-import.zip  gdb-readline-pre-41-import.tar.gz  gdb-readline-pre-41-import.tar.bz2  nobody25 years
binutils-2_10gdb-binutils-2_10.zip  gdb-binutils-2_10.tar.gz  gdb-binutils-2_10.tar.bz2  nobody25 years
gdb-pre-params-removal-2000-06-04gdb-pre-params-removal-2000-06-04.zip  gdb-pre-params-removal-2000-06-04.tar.gz  gdb-pre-params-removal-2000-06-04.tar.bz2  nobody25 years
gdb-post-params-removal-2000-06-04gdb-post-params-removal-2000-06-04.zip  gdb-post-params-removal-2000-06-04.tar.gz  gdb-post-params-removal-2000-06-04.tar.bz2  nobody25 years
gdb-post-params-removal-2000-05-28gdb-post-params-removal-2000-05-28.zip  gdb-post-params-removal-2000-05-28.tar.gz  gdb-post-params-removal-2000-05-28.tar.bz2  nobody25 years
gdb-premipsmulti-2000-06-06-branchpointgdb-premipsmulti-2000-06-06-branchpoint.zip  gdb-premipsmulti-2000-06-06-branchpoint.tar.gz  gdb-premipsmulti-2000-06-06-branchpoint.tar.bz2  nobody25 years
gdb-pre-params-removal-2000-05-28gdb-pre-params-removal-2000-05-28.zip  gdb-pre-params-removal-2000-05-28.tar.gz  gdb-pre-params-removal-2000-05-28.tar.bz2  nobody25 years
gdb_4_18_2-2000-05-18-releasegdb_4_18_2-2000-05-18-release.zip  gdb_4_18_2-2000-05-18-release.tar.gz  gdb_4_18_2-2000-05-18-release.tar.bz2  Andrew Cagney25 years
gdb_5_0-2000-05-19-releasegdb_5_0-2000-05-19-release.zip  gdb_5_0-2000-05-19-release.tar.gz  gdb_5_0-2000-05-19-release.tar.bz2  Andrew Cagney25 years
cygwin-1_1_1gdb-cygwin-1_1_1.zip  gdb-cygwin-1_1_1.tar.gz  gdb-cygwin-1_1_1.tar.bz2  nobody25 years
gdb_4_95_1-2000-05-11-snapshotgdb_4_95_1-2000-05-11-snapshot.zip  gdb_4_95_1-2000-05-11-snapshot.tar.gz  gdb_4_95_1-2000-05-11-snapshot.tar.bz2  Andrew Cagney25 years
gdb_4_95_0-2000-04-27-snapshotgdb_4_95_0-2000-04-27-snapshot.zip  gdb_4_95_0-2000-04-27-snapshot.tar.gz  gdb_4_95_0-2000-04-27-snapshot.tar.bz2  nobody25 years
repo-unification-2000-02-06gdb-repo-unification-2000-02-06.zip  gdb-repo-unification-2000-02-06.tar.gz  gdb-repo-unification-2000-02-06.tar.bz2  nobody25 years
gdb_5_0-2000-04-10-branchpointgdb_5_0-2000-04-10-branchpoint.zip  gdb_5_0-2000-04-10-branchpoint.tar.gz  gdb_5_0-2000-04-10-branchpoint.tar.bz2  nobody25 years
pre-gettext-0-10-35gdb-pre-gettext-0-10-35.zip  gdb-pre-gettext-0-10-35.tar.gz  gdb-pre-gettext-0-10-35.tar.bz2  nobody25 years
binutils-2_10-branchpointgdb-binutils-2_10-branchpoint.zip  gdb-binutils-2_10-branchpoint.tar.gz  gdb-binutils-2_10-branchpoint.tar.bz2  nobody25 years
egcs_20000222gdb-egcs_20000222.zip  gdb-egcs_20000222.tar.gz  gdb-egcs_20000222.tar.bz2  nobody25 years
insight-2000-02-04gdb-insight-2000-02-04.zip  gdb-insight-2000-02-04.tar.gz  gdb-insight-2000-02-04.tar.bz2  nobody25 years
gdb-2000-02-04gdb-2000-02-04.zip  gdb-2000-02-04.tar.gz  gdb-2000-02-04.tar.bz2  nobody25 years
gdb-2000-02-02gdb-2000-02-02.zip  gdb-2000-02-02.tar.gz  gdb-2000-02-02.tar.bz2  nobody25 years
gdb-2000-02-01gdb-2000-02-01.zip  gdb-2000-02-01.tar.gz  gdb-2000-02-01.tar.bz2  nobody25 years
gdb-2000-01-31gdb-2000-01-31.zip  gdb-2000-01-31.tar.gz  gdb-2000-01-31.tar.bz2  nobody25 years
gdb-2000-01-26gdb-2000-01-26.zip  gdb-2000-01-26.tar.gz  gdb-2000-01-26.tar.bz2  nobody25 years
gdb-2000-01-24gdb-2000-01-24.zip  gdb-2000-01-24.tar.gz  gdb-2000-01-24.tar.bz2  nobody25 years
gdb-2000-01-17gdb-2000-01-17.zip  gdb-2000-01-17.tar.gz  gdb-2000-01-17.tar.bz2  nobody25 years
gdb-2000-01-10gdb-2000-01-10.zip  gdb-2000-01-10.tar.gz  gdb-2000-01-10.tar.bz2  nobody25 years
gdb-2000-01-05gdb-2000-01-05.zip  gdb-2000-01-05.tar.gz  gdb-2000-01-05.tar.bz2  nobody25 years
gdb-1999-12-21gdb-1999-12-21.zip  gdb-1999-12-21.tar.gz  gdb-1999-12-21.tar.bz2  nobody25 years
gdb-1999-12-13gdb-1999-12-13.zip  gdb-1999-12-13.tar.gz  gdb-1999-12-13.tar.bz2  nobody25 years
gdb-1999-12-07gdb-1999-12-07.zip  gdb-1999-12-07.tar.gz  gdb-1999-12-07.tar.bz2  nobody25 years
gdb-1999-12-06gdb-1999-12-06.zip  gdb-1999-12-06.tar.gz  gdb-1999-12-06.tar.bz2  nobody25 years
gdb-1999-11-16gdb-1999-11-16.zip  gdb-1999-11-16.tar.gz  gdb-1999-11-16.tar.bz2  nobody25 years
gdb-1999-11-08gdb-1999-11-08.zip  gdb-1999-11-08.tar.gz  gdb-1999-11-08.tar.bz2  nobody25 years
gdb-1999-11-01gdb-1999-11-01.zip  gdb-1999-11-01.tar.gz  gdb-1999-11-01.tar.bz2  nobody25 years
gdb-1999-10-25gdb-1999-10-25.zip  gdb-1999-10-25.tar.gz  gdb-1999-10-25.tar.bz2  nobody25 years
gdb-1999-10-18gdb-1999-10-18.zip  gdb-1999-10-18.tar.gz  gdb-1999-10-18.tar.bz2  nobody25 years
gdb-1999-10-11gdb-1999-10-11.zip  gdb-1999-10-11.tar.gz  gdb-1999-10-11.tar.bz2  nobody25 years
gdb-1999-10-04gdb-1999-10-04.zip  gdb-1999-10-04.tar.gz  gdb-1999-10-04.tar.bz2  nobody25 years
gdb-1999-09-28gdb-1999-09-28.zip  gdb-1999-09-28.tar.gz  gdb-1999-09-28.tar.bz2  nobody25 years
gdb-1999-09-21gdb-1999-09-21.zip  gdb-1999-09-21.tar.gz  gdb-1999-09-21.tar.bz2  nobody25 years
gdb-1999-09-13gdb-1999-09-13.zip  gdb-1999-09-13.tar.gz  gdb-1999-09-13.tar.bz2  nobody26 years
gdb-1999-09-08gdb-1999-09-08.zip  gdb-1999-09-08.tar.gz  gdb-1999-09-08.tar.bz2  nobody26 years
gdb-1999-08-30gdb-1999-08-30.zip  gdb-1999-08-30.tar.gz  gdb-1999-08-30.tar.bz2  nobody26 years
gdb-1999-08-23gdb-1999-08-23.zip  gdb-1999-08-23.tar.gz  gdb-1999-08-23.tar.bz2  nobody26 years
gdb-1999-08-16gdb-1999-08-16.zip  gdb-1999-08-16.tar.gz  gdb-1999-08-16.tar.bz2  nobody26 years
gdb-1999-08-09gdb-1999-08-09.zip  gdb-1999-08-09.tar.gz  gdb-1999-08-09.tar.bz2  nobody26 years
gdb-1999-08-02gdb-1999-08-02.zip  gdb-1999-08-02.tar.gz  gdb-1999-08-02.tar.bz2  nobody26 years
gdb-1999-07-26gdb-1999-07-26.zip  gdb-1999-07-26.tar.gz  gdb-1999-07-26.tar.bz2  nobody26 years
binu_ss_19990721gdb-binu_ss_19990721.zip  gdb-binu_ss_19990721.tar.gz  gdb-binu_ss_19990721.tar.bz2  nobody26 years
gdb-1999-07-19gdb-1999-07-19.zip  gdb-1999-07-19.tar.gz  gdb-1999-07-19.tar.bz2  nobody26 years
gdb-1999-07-12gdb-1999-07-12.zip  gdb-1999-07-12.tar.gz  gdb-1999-07-12.tar.bz2  nobody26 years
gdb-pre-reformat-19990707gdb-pre-reformat-19990707.zip  gdb-pre-reformat-19990707.tar.gz  gdb-pre-reformat-19990707.tar.bz2  nobody26 years
gdb-post-reformat-19990707gdb-post-reformat-19990707.zip  gdb-post-reformat-19990707.tar.gz  gdb-post-reformat-19990707.tar.bz2  nobody26 years
gdb-1999-07-07-post-reformat-snapshotgdb-1999-07-07-post-reformat-snapshot.zip  gdb-1999-07-07-post-reformat-snapshot.tar.gz  gdb-1999-07-07-post-reformat-snapshot.tar.bz2  nobody26 years
gdb-1999-07-07gdb-1999-07-07.zip  gdb-1999-07-07.tar.gz  gdb-1999-07-07.tar.bz2  nobody26 years
gdb-1999-07-05gdb-1999-07-05.zip  gdb-1999-07-05.tar.gz  gdb-1999-07-05.tar.bz2  nobody26 years
gdb-1999-06-28gdb-1999-06-28.zip  gdb-1999-06-28.tar.gz  gdb-1999-06-28.tar.bz2  nobody26 years
gdb-1999-06-21gdb-1999-06-21.zip  gdb-1999-06-21.tar.gz  gdb-1999-06-21.tar.bz2  nobody26 years
gdb-1999-06-14gdb-1999-06-14.zip  gdb-1999-06-14.tar.gz  gdb-1999-06-14.tar.bz2  nobody26 years
gdb-1999-06-07gdb-1999-06-07.zip  gdb-1999-06-07.tar.gz  gdb-1999-06-07.tar.bz2  nobody26 years
binu_ss_19990602gdb-binu_ss_19990602.zip  gdb-binu_ss_19990602.tar.gz  gdb-binu_ss_19990602.tar.bz2  nobody26 years
gdb-1999-06-01gdb-1999-06-01.zip  gdb-1999-06-01.tar.gz  gdb-1999-06-01.tar.bz2  nobody26 years
gdb-1999-05-25gdb-1999-05-25.zip  gdb-1999-05-25.tar.gz  gdb-1999-05-25.tar.bz2  nobody26 years
gdb-1999-05-19gdb-1999-05-19.zip  gdb-1999-05-19.tar.gz  gdb-1999-05-19.tar.bz2  nobody26 years
gdb-1999-05-10gdb-1999-05-10.zip  gdb-1999-05-10.tar.gz  gdb-1999-05-10.tar.bz2  nobody26 years
gdb-19990504gdb-19990504.zip  gdb-19990504.tar.gz  gdb-19990504.tar.bz2  nobody26 years
binu_ss_19990502gdb-binu_ss_19990502.zip  gdb-binu_ss_19990502.tar.gz  gdb-binu_ss_19990502.tar.bz2  Richard Henderson26 years
gdb-19990422gdb-19990422.zip  gdb-19990422.tar.gz  gdb-19990422.tar.bz2  nobody26 years
gdb-4_18gdb-4_18.zip  gdb-4_18.tar.gz  gdb-4_18.tar.bz2  nobody26 years
gdb-4_18-releasegdb-4_18-release.zip  gdb-4_18-release.tar.gz  gdb-4_18-release.tar.bz2  nobody26 years
class="hl opt">, (int) ssize); _bfd_hexdump (9, cptr, (int) ssize, (int) vaddr); #endif while (ssize > 0) { /* Try all the rest. */ size = ssize; if (_bfd_vms_output_check (recwr, size) < 0) { /* Doesn't fit, split ! */ end_etir_record (abfd); start_etir_or_etbt_record (abfd, section, vaddr); size = _bfd_vms_output_check (recwr, 0); /* get max size */ if (size > ssize) /* more than what's left ? */ size = ssize; } _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_IMM); _bfd_vms_output_long (recwr, (unsigned long) (size)); _bfd_vms_output_dump (recwr, cptr, size); _bfd_vms_output_end_subrec (recwr); #if VMS_DEBUG _bfd_vms_debug (10, "dumped %d bytes\n", (int) size); _bfd_hexdump (10, cptr, (int) size, (int) vaddr); #endif vaddr += size; cptr += size; ssize -= size; } } static void etir_output_check (bfd *abfd, asection *section, bfd_vma vaddr, int checklen) { if (_bfd_vms_output_check (&PRIV (recwr), checklen) < 0) { /* Not enough room in this record. Close it and open a new one. */ end_etir_record (abfd); start_etir_or_etbt_record (abfd, section, vaddr); } } /* Return whether RELOC must be deferred till the end. */ static bfd_boolean defer_reloc_p (arelent *reloc) { switch (reloc->howto->type) { case ALPHA_R_NOP: case ALPHA_R_LDA: case ALPHA_R_BSR: case ALPHA_R_BOH: return TRUE; default: return FALSE; } } /* Write section contents for bfd abfd. Return FALSE on error. */ static bfd_boolean _bfd_vms_write_etir (bfd * abfd, int objtype ATTRIBUTE_UNUSED) { asection *section; struct vms_rec_wr *recwr = &PRIV (recwr); vms_debug2 ((2, "vms_write_tir (%p, %d)\n", abfd, objtype)); _bfd_vms_output_alignment (recwr, 4); PRIV (vms_linkage_index) = 0; for (section = abfd->sections; section; section = section->next) { vms_debug2 ((4, "writing %d. section '%s' (%d bytes)\n", section->target_index, section->name, (int) (section->size))); if (!(section->flags & SEC_HAS_CONTENTS) || bfd_is_com_section (section)) continue; if (!section->contents) { bfd_set_error (bfd_error_no_contents); return FALSE; } start_etir_or_etbt_record (abfd, section, 0); if (section->flags & SEC_RELOC) { bfd_vma curr_addr = 0; unsigned char *curr_data = section->contents; bfd_size_type size; int pass2_needed = 0; int pass2_in_progress = 0; unsigned int irel; if (section->reloc_count == 0) _bfd_error_handler (_("SEC_RELOC with no relocs in section %pA"), section); #if VMS_DEBUG else { int i = section->reloc_count; arelent **rptr = section->orelocation; _bfd_vms_debug (4, "%d relocations:\n", i); while (i-- > 0) { _bfd_vms_debug (4, "sym %s in sec %s, value %08lx, " "addr %08lx, off %08lx, len %d: %s\n", (*(*rptr)->sym_ptr_ptr)->name, (*(*rptr)->sym_ptr_ptr)->section->name, (long) (*(*rptr)->sym_ptr_ptr)->value, (unsigned long)(*rptr)->address, (unsigned long)(*rptr)->addend, bfd_get_reloc_size ((*rptr)->howto), ( *rptr)->howto->name); rptr++; } } #endif new_pass: for (irel = 0; irel < section->reloc_count; irel++) { struct evax_private_udata_struct *udata; arelent *rptr = section->orelocation [irel]; bfd_vma addr = rptr->address; asymbol *sym = *rptr->sym_ptr_ptr; asection *sec = sym->section; bfd_boolean defer = defer_reloc_p (rptr); unsigned int slen; if (pass2_in_progress) { /* Non-deferred relocs have already been output. */ if (!defer) continue; } else { /* Deferred relocs must be output at the very end. */ if (defer) { pass2_needed = 1; continue; } /* Regular relocs are intertwined with binary data. */ if (curr_addr > addr) _bfd_error_handler (_("size error in section %pA"), section); size = addr - curr_addr; sto_imm (abfd, section, size, curr_data, curr_addr); curr_data += size; curr_addr += size; } size = bfd_get_reloc_size (rptr->howto); switch (rptr->howto->type) { case ALPHA_R_IGNORE: break; case ALPHA_R_REFLONG: if (bfd_is_und_section (sym->section)) { bfd_vma addend = rptr->addend; slen = strlen ((char *) sym->name); etir_output_check (abfd, section, curr_addr, slen); if (addend) { _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_GBL); _bfd_vms_output_counted (recwr, sym->name); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_LW); _bfd_vms_output_long (recwr, (unsigned long) addend); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_OPR_ADD); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_LW); _bfd_vms_output_end_subrec (recwr); } else { _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_GBL_LW); _bfd_vms_output_counted (recwr, sym->name); _bfd_vms_output_end_subrec (recwr); } } else if (bfd_is_abs_section (sym->section)) { etir_output_check (abfd, section, curr_addr, 16); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_LW); _bfd_vms_output_long (recwr, (unsigned long) sym->value); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_LW); _bfd_vms_output_end_subrec (recwr); } else { etir_output_check (abfd, section, curr_addr, 32); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_PQ); _bfd_vms_output_long (recwr, (unsigned long) sec->target_index); _bfd_vms_output_quad (recwr, rptr->addend + sym->value); _bfd_vms_output_end_subrec (recwr); /* ??? Table B-8 of the OpenVMS Linker Utilily Manual says that we should have a ETIR__C_STO_OFF here. But the relocation would not be BFD_RELOC_32 then. This case is very likely unreachable. */ _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_LW); _bfd_vms_output_end_subrec (recwr); } break; case ALPHA_R_REFQUAD: if (bfd_is_und_section (sym->section)) { bfd_vma addend = rptr->addend; slen = strlen ((char *) sym->name); etir_output_check (abfd, section, curr_addr, slen); if (addend) { _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_GBL); _bfd_vms_output_counted (recwr, sym->name); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_QW); _bfd_vms_output_quad (recwr, addend); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_OPR_ADD); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_QW); _bfd_vms_output_end_subrec (recwr); } else { _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_GBL); _bfd_vms_output_counted (recwr, sym->name); _bfd_vms_output_end_subrec (recwr); } } else if (bfd_is_abs_section (sym->section)) { etir_output_check (abfd, section, curr_addr, 16); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_QW); _bfd_vms_output_quad (recwr, sym->value); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_QW); _bfd_vms_output_end_subrec (recwr); } else { etir_output_check (abfd, section, curr_addr, 32); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STA_PQ); _bfd_vms_output_long (recwr, (unsigned long) sec->target_index); _bfd_vms_output_quad (recwr, rptr->addend + sym->value); _bfd_vms_output_end_subrec (recwr); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_OFF); _bfd_vms_output_end_subrec (recwr); } break; case ALPHA_R_HINT: sto_imm (abfd, section, size, curr_data, curr_addr); break; case ALPHA_R_LINKAGE: size = 16; etir_output_check (abfd, section, curr_addr, 64); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_LP_PSB); _bfd_vms_output_long (recwr, (unsigned long) rptr->addend); if (rptr->addend > PRIV (vms_linkage_index)) PRIV (vms_linkage_index) = rptr->addend; _bfd_vms_output_counted (recwr, sym->name); _bfd_vms_output_byte (recwr, 0); _bfd_vms_output_end_subrec (recwr); break; case ALPHA_R_CODEADDR: slen = strlen ((char *) sym->name); etir_output_check (abfd, section, curr_addr, slen); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STO_CA); _bfd_vms_output_counted (recwr, sym->name); _bfd_vms_output_end_subrec (recwr); break; case ALPHA_R_NOP: udata = (struct evax_private_udata_struct *) rptr->sym_ptr_ptr; etir_output_check (abfd, section, curr_addr, 32 + 1 + strlen (udata->origname)); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_NOP_GBL); _bfd_vms_output_long (recwr, (unsigned long) udata->lkindex); _bfd_vms_output_long (recwr, (unsigned long) section->target_index); _bfd_vms_output_quad (recwr, rptr->address); _bfd_vms_output_long (recwr, (unsigned long) 0x47ff041f); _bfd_vms_output_long (recwr, (unsigned long) section->target_index); _bfd_vms_output_quad (recwr, rptr->addend); _bfd_vms_output_counted (recwr, udata->origname); _bfd_vms_output_end_subrec (recwr); break; case ALPHA_R_BSR: _bfd_error_handler (_("spurious ALPHA_R_BSR reloc")); break; case ALPHA_R_LDA: udata = (struct evax_private_udata_struct *) rptr->sym_ptr_ptr; etir_output_check (abfd, section, curr_addr, 32 + 1 + strlen (udata->origname)); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_LDA_GBL); _bfd_vms_output_long (recwr, (unsigned long) udata->lkindex + 1); _bfd_vms_output_long (recwr, (unsigned long) section->target_index); _bfd_vms_output_quad (recwr, rptr->address); _bfd_vms_output_long (recwr, (unsigned long) 0x237B0000); _bfd_vms_output_long (recwr, (unsigned long) udata->bsym->section->target_index); _bfd_vms_output_quad (recwr, rptr->addend); _bfd_vms_output_counted (recwr, udata->origname); _bfd_vms_output_end_subrec (recwr); break; case ALPHA_R_BOH: udata = (struct evax_private_udata_struct *) rptr->sym_ptr_ptr; etir_output_check (abfd, section, curr_addr, 32 + 1 + strlen (udata->origname)); _bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_BOH_GBL); _bfd_vms_output_long (recwr, (unsigned long) udata->lkindex); _bfd_vms_output_long (recwr, (unsigned long) section->target_index); _bfd_vms_output_quad (recwr, rptr->address); _bfd_vms_output_long (recwr, (unsigned long) 0xD3400000); _bfd_vms_output_long (recwr, (unsigned long) section->target_index); _bfd_vms_output_quad (recwr, rptr->addend); _bfd_vms_output_counted (recwr, udata->origname); _bfd_vms_output_end_subrec (recwr); break; default: _bfd_error_handler (_("unhandled relocation %s"), rptr->howto->name); break; } curr_data += size; curr_addr += size; } /* End of relocs loop. */ if (!pass2_in_progress) { /* Output rest of section. */ if (curr_addr > section->size) { _bfd_error_handler (_("size error in section %pA"), section); return FALSE; } size = section->size - curr_addr; sto_imm (abfd, section, size, curr_data, curr_addr); curr_data += size; curr_addr += size; if (pass2_needed) { pass2_in_progress = 1; goto new_pass; } } } else /* (section->flags & SEC_RELOC) */ sto_imm (abfd, section, section->size, section->contents, 0); end_etir_record (abfd); } _bfd_vms_output_alignment (recwr, 2); return TRUE; } /* Write cached information into a file being written, at bfd_close. */ static bfd_boolean alpha_vms_write_object_contents (bfd *abfd) { vms_debug2 ((1, "vms_write_object_contents (%p)\n", abfd)); if (abfd->flags & (EXEC_P | DYNAMIC)) { return alpha_vms_write_exec (abfd); } else { if (abfd->section_count > 0) /* we have sections */ { if (!_bfd_vms_write_ehdr (abfd)) return FALSE; if (!_bfd_vms_write_egsd (abfd)) return FALSE; if (!_bfd_vms_write_etir (abfd, EOBJ__C_ETIR)) return FALSE; if (!_bfd_vms_write_eeom (abfd)) return FALSE; } } return TRUE; } /* Debug stuff: nearest line. */ #define SET_MODULE_PARSED(m) \ do { if ((m)->name == NULL) (m)->name = ""; } while (0) #define IS_MODULE_PARSED(m) ((m)->name != NULL) /* Build a new module for the specified BFD. */ static struct module * new_module (bfd *abfd) { struct module *module = (struct module *) bfd_zalloc (abfd, sizeof (struct module)); module->file_table_count = 16; /* Arbitrary. */ module->file_table = bfd_malloc (module->file_table_count * sizeof (struct fileinfo)); return module; } /* Parse debug info for a module and internalize it. */ static void parse_module (bfd *abfd, struct module *module, unsigned char *ptr, int length) { unsigned char *maxptr = ptr + length; unsigned char *src_ptr, *pcl_ptr; unsigned int prev_linum = 0, curr_linenum = 0; bfd_vma prev_pc = 0, curr_pc = 0; struct srecinfo *curr_srec, *srec; struct lineinfo *curr_line, *line; struct funcinfo *funcinfo; /* Initialize tables with zero element. */ curr_srec = (struct srecinfo *) bfd_zalloc (abfd, sizeof (struct srecinfo)); module->srec_table = curr_srec; curr_line = (struct lineinfo *) bfd_zalloc (abfd, sizeof (struct lineinfo)); module->line_table = curr_line; while (length == -1 || ptr < maxptr) { /* The first byte is not counted in the recorded length. */ int rec_length = bfd_getl16 (ptr) + 1; int rec_type = bfd_getl16 (ptr + 2); vms_debug2 ((2, "DST record: leng %d, type %d\n", rec_length, rec_type)); if (length == -1 && rec_type == DST__K_MODEND) break; switch (rec_type) { case DST__K_MODBEG: module->name = _bfd_vms_save_counted_string (ptr + DST_S_B_MODBEG_NAME, maxptr - (ptr + DST_S_B_MODBEG_NAME)); curr_pc = 0; prev_pc = 0; curr_linenum = 0; prev_linum = 0; vms_debug2 ((3, "module: %s\n", module->name)); break; case DST__K_MODEND: break; case DST__K_RTNBEG: funcinfo = (struct funcinfo *) bfd_zalloc (abfd, sizeof (struct funcinfo)); funcinfo->name = _bfd_vms_save_counted_string (ptr + DST_S_B_RTNBEG_NAME, maxptr - (ptr + DST_S_B_RTNBEG_NAME)); funcinfo->low = bfd_getl32 (ptr + DST_S_L_RTNBEG_ADDRESS); funcinfo->next = module->func_table; module->func_table = funcinfo; vms_debug2 ((3, "routine: %s at 0x%lx\n", funcinfo->name, (unsigned long) funcinfo->low)); break; case DST__K_RTNEND: module->func_table->high = module->func_table->low + bfd_getl32 (ptr + DST_S_L_RTNEND_SIZE) - 1; if (module->func_table->high > module->high) module->high = module->func_table->high; vms_debug2 ((3, "end routine\n")); break; case DST__K_PROLOG: vms_debug2 ((3, "prologue\n")); break; case DST__K_EPILOG: vms_debug2 ((3, "epilog\n")); break; case DST__K_BLKBEG: vms_debug2 ((3, "block\n")); break; case DST__K_BLKEND: vms_debug2 ((3, "end block\n")); break; case DST__K_SOURCE: src_ptr = ptr + DST_S_C_SOURCE_HEADER_SIZE; vms_debug2 ((3, "source info\n")); while (src_ptr < ptr + rec_length) { int cmd = src_ptr[0], cmd_length, data; switch (cmd) { case DST__K_SRC_DECLFILE: { unsigned int fileid = bfd_getl16 (src_ptr + DST_S_W_SRC_DF_FILEID); char *filename = _bfd_vms_save_counted_string (src_ptr + DST_S_B_SRC_DF_FILENAME, (ptr + rec_length) - (src_ptr + DST_S_B_SRC_DF_FILENAME) ); while (fileid >= module->file_table_count) { module->file_table_count *= 2; module->file_table = bfd_realloc (module->file_table, module->file_table_count * sizeof (struct fileinfo)); } module->file_table [fileid].name = filename; module->file_table [fileid].srec = 1; cmd_length = src_ptr[DST_S_B_SRC_DF_LENGTH] + 2; vms_debug2 ((4, "DST_S_C_SRC_DECLFILE: %d, %s\n", fileid, module->file_table [fileid].name)); } break; case DST__K_SRC_DEFLINES_B: /* Perform the association and set the next higher index to the limit. */ data = src_ptr[DST_S_B_SRC_UNSBYTE]; srec = (struct srecinfo *) bfd_zalloc (abfd, sizeof (struct srecinfo)); srec->line = curr_srec->line + data; srec->srec = curr_srec->srec + data; srec->sfile = curr_srec->sfile; curr_srec->next = srec; curr_srec = srec; cmd_length = 2; vms_debug2 ((4, "DST_S_C_SRC_DEFLINES_B: %d\n", data)); break; case DST__K_SRC_DEFLINES_W: /* Perform the association and set the next higher index to the limit. */ data = bfd_getl16 (src_ptr + DST_S_W_SRC_UNSWORD); srec = (struct srecinfo *) bfd_zalloc (abfd, sizeof (struct srecinfo)); srec->line = curr_srec->line + data; srec->srec = curr_srec->srec + data, srec->sfile = curr_srec->sfile; curr_srec->next = srec; curr_srec = srec; cmd_length = 3; vms_debug2 ((4, "DST_S_C_SRC_DEFLINES_W: %d\n", data)); break; case DST__K_SRC_INCRLNUM_B: data = src_ptr[DST_S_B_SRC_UNSBYTE]; curr_srec->line += data; cmd_length = 2; vms_debug2 ((4, "DST_S_C_SRC_INCRLNUM_B: %d\n", data)); break; case DST__K_SRC_SETFILE: data = bfd_getl16 (src_ptr + DST_S_W_SRC_UNSWORD); curr_srec->sfile = data; curr_srec->srec = module->file_table[data].srec; cmd_length = 3; vms_debug2 ((4, "DST_S_C_SRC_SETFILE: %d\n", data)); break; case DST__K_SRC_SETLNUM_L: data = bfd_getl32 (src_ptr + DST_S_L_SRC_UNSLONG); curr_srec->line = data; cmd_length = 5; vms_debug2 ((4, "DST_S_C_SRC_SETLNUM_L: %d\n", data)); break; case DST__K_SRC_SETLNUM_W: data = bfd_getl16 (src_ptr + DST_S_W_SRC_UNSWORD); curr_srec->line = data; cmd_length = 3; vms_debug2 ((4, "DST_S_C_SRC_SETLNUM_W: %d\n", data)); break; case DST__K_SRC_SETREC_L: data = bfd_getl32 (src_ptr + DST_S_L_SRC_UNSLONG); curr_srec->srec = data; module->file_table[curr_srec->sfile].srec = data; cmd_length = 5; vms_debug2 ((4, "DST_S_C_SRC_SETREC_L: %d\n", data)); break; case DST__K_SRC_SETREC_W: data = bfd_getl16 (src_ptr + DST_S_W_SRC_UNSWORD); curr_srec->srec = data; module->file_table[curr_srec->sfile].srec = data; cmd_length = 3; vms_debug2 ((4, "DST_S_C_SRC_SETREC_W: %d\n", data)); break; case DST__K_SRC_FORMFEED: cmd_length = 1; vms_debug2 ((4, "DST_S_C_SRC_FORMFEED\n")); break; default: _bfd_error_handler (_("unknown source command %d"), cmd); cmd_length = 2; break; } src_ptr += cmd_length; } break; case DST__K_LINE_NUM: pcl_ptr = ptr + DST_S_C_LINE_NUM_HEADER_SIZE; vms_debug2 ((3, "line info\n")); while (pcl_ptr < ptr + rec_length) { /* The command byte is signed so we must sign-extend it. */ int cmd = ((signed char *)pcl_ptr)[0], cmd_length, data; switch (cmd) { case DST__K_DELTA_PC_W: data = bfd_getl16 (pcl_ptr + DST_S_W_PCLINE_UNSWORD); curr_pc += data; curr_linenum += 1; cmd_length = 3; vms_debug2 ((4, "DST__K_DELTA_PC_W: %d\n", data)); break; case DST__K_DELTA_PC_L: data = bfd_getl32 (pcl_ptr + DST_S_L_PCLINE_UNSLONG); curr_pc += data; curr_linenum += 1; cmd_length = 5; vms_debug2 ((4, "DST__K_DELTA_PC_L: %d\n", data)); break; case DST__K_INCR_LINUM: data = pcl_ptr[DST_S_B_PCLINE_UNSBYTE]; curr_linenum += data; cmd_length = 2; vms_debug2 ((4, "DST__K_INCR_LINUM: %d\n", data)); break; case DST__K_INCR_LINUM_W: data = bfd_getl16 (pcl_ptr + DST_S_W_PCLINE_UNSWORD); curr_linenum += data; cmd_length = 3; vms_debug2 ((4, "DST__K_INCR_LINUM_W: %d\n", data)); break; case DST__K_INCR_LINUM_L: data = bfd_getl32 (pcl_ptr + DST_S_L_PCLINE_UNSLONG); curr_linenum += data; cmd_length = 5; vms_debug2 ((4, "DST__K_INCR_LINUM_L: %d\n", data)); break; case DST__K_SET_LINUM_INCR: _bfd_error_handler (_("%s not implemented"), "DST__K_SET_LINUM_INCR"); cmd_length = 2; break; case DST__K_SET_LINUM_INCR_W: _bfd_error_handler (_("%s not implemented"), "DST__K_SET_LINUM_INCR_W"); cmd_length = 3; break; case DST__K_RESET_LINUM_INCR: _bfd_error_handler (_("%s not implemented"), "DST__K_RESET_LINUM_INCR"); cmd_length = 1; break; case DST__K_BEG_STMT_MODE: _bfd_error_handler (_("%s not implemented"), "DST__K_BEG_STMT_MODE"); cmd_length = 1; break; case DST__K_END_STMT_MODE: _bfd_error_handler (_("%s not implemented"), "DST__K_END_STMT_MODE"); cmd_length = 1; break; case DST__K_SET_LINUM_B: data = pcl_ptr[DST_S_B_PCLINE_UNSBYTE]; curr_linenum = data; cmd_length = 2; vms_debug2 ((4, "DST__K_SET_LINUM_B: %d\n", data)); break; case DST__K_SET_LINUM: data = bfd_getl16 (pcl_ptr + DST_S_W_PCLINE_UNSWORD); curr_linenum = data; cmd_length = 3; vms_debug2 ((4, "DST__K_SET_LINE_NUM: %d\n", data)); break; case DST__K_SET_LINUM_L: data = bfd_getl32 (pcl_ptr + DST_S_L_PCLINE_UNSLONG); curr_linenum = data; cmd_length = 5; vms_debug2 ((4, "DST__K_SET_LINUM_L: %d\n", data)); break; case DST__K_SET_PC: _bfd_error_handler (_("%s not implemented"), "DST__K_SET_PC"); cmd_length = 2; break; case DST__K_SET_PC_W: _bfd_error_handler (_("%s not implemented"), "DST__K_SET_PC_W"); cmd_length = 3; break; case DST__K_SET_PC_L: _bfd_error_handler (_("%s not implemented"), "DST__K_SET_PC_L"); cmd_length = 5; break; case DST__K_SET_STMTNUM: _bfd_error_handler (_("%s not implemented"), "DST__K_SET_STMTNUM"); cmd_length = 2; break; case DST__K_TERM: data = pcl_ptr[DST_S_B_PCLINE_UNSBYTE]; curr_pc += data; cmd_length = 2; vms_debug2 ((4, "DST__K_TERM: %d\n", data)); break; case DST__K_TERM_W: data = bfd_getl16 (pcl_ptr + DST_S_W_PCLINE_UNSWORD); curr_pc += data; cmd_length = 3; vms_debug2 ((4, "DST__K_TERM_W: %d\n", data)); break; case DST__K_TERM_L: data = bfd_getl32 (pcl_ptr + DST_S_L_PCLINE_UNSLONG); curr_pc += data; cmd_length = 5; vms_debug2 ((4, "DST__K_TERM_L: %d\n", data)); break; case DST__K_SET_ABS_PC: data = bfd_getl32 (pcl_ptr + DST_S_L_PCLINE_UNSLONG); curr_pc = data; cmd_length = 5; vms_debug2 ((4, "DST__K_SET_ABS_PC: 0x%x\n", data)); break; default: if (cmd <= 0) { curr_pc -= cmd; curr_linenum += 1; cmd_length = 1; vms_debug2 ((4, "bump pc to 0x%lx and line to %d\n", (unsigned long)curr_pc, curr_linenum)); } else { _bfd_error_handler (_("unknown line command %d"), cmd); cmd_length = 2; } break; } if ((curr_linenum != prev_linum && curr_pc != prev_pc) || cmd <= 0 || cmd == DST__K_DELTA_PC_L || cmd == DST__K_DELTA_PC_W) { line = (struct lineinfo *) bfd_zalloc (abfd, sizeof (struct lineinfo)); line->address = curr_pc; line->line = curr_linenum; curr_line->next = line; curr_line = line; prev_linum = curr_linenum; prev_pc = curr_pc; vms_debug2 ((4, "-> correlate pc 0x%lx with line %d\n", (unsigned long)curr_pc, curr_linenum)); } pcl_ptr += cmd_length; } break; case 0x17: /* Undocumented type used by DEC C to declare equates. */ vms_debug2 ((3, "undocumented type 0x17\n")); break; default: vms_debug2 ((3, "ignoring record\n")); break; } ptr += rec_length; } /* Finalize tables with EOL marker. */ srec = (struct srecinfo *) bfd_zalloc (abfd, sizeof (struct srecinfo)); srec->line = (unsigned int) -1; srec->srec = (unsigned int) -1; curr_srec->next = srec; line = (struct lineinfo *) bfd_zalloc (abfd, sizeof (struct lineinfo)); line->line = (unsigned int) -1; line->address = (bfd_vma) -1; curr_line->next = line; /* Advertise that this module has been parsed. This is needed because parsing can be either performed at module creation or deferred until debug info is consumed. */ SET_MODULE_PARSED (module); } /* Build the list of modules for the specified BFD. */ static struct module * build_module_list (bfd *abfd) { struct module *module, *list = NULL; asection *dmt; if ((dmt = bfd_get_section_by_name (abfd, "$DMT$"))) { /* We have a DMT section so this must be an image. Parse the section and build the list of modules. This is sufficient since we can compute the start address and the end address of every module from the section contents. */ bfd_size_type size = bfd_get_section_size (dmt); unsigned char *ptr, *end; ptr = (unsigned char *) bfd_alloc (abfd, size); if (! ptr) return NULL; if (! bfd_get_section_contents (abfd, dmt, ptr, 0, size)) return NULL; vms_debug2 ((2, "DMT\n")); end = ptr + size; while (ptr < end) { /* Each header declares a module with its start offset and size of debug info in the DST section, as well as the count of program sections (i.e. address spans) it contains. */ int modbeg = bfd_getl32 (ptr + DBG_S_L_DMT_MODBEG); int msize = bfd_getl32 (ptr + DBG_S_L_DST_SIZE); int count = bfd_getl16 (ptr + DBG_S_W_DMT_PSECT_COUNT); ptr += DBG_S_C_DMT_HEADER_SIZE; vms_debug2 ((3, "module: modbeg = %d, size = %d, count = %d\n", modbeg, msize, count)); /* We create a 'module' structure for each program section since we only support contiguous addresses in a 'module' structure. As a consequence, the actual debug info in the DST section is shared and can be parsed multiple times; that doesn't seem to cause problems in practice. */ while (count-- > 0) { int start = bfd_getl32 (ptr + DBG_S_L_DMT_PSECT_START); int length = bfd_getl32 (ptr + DBG_S_L_DMT_PSECT_LENGTH); module = new_module (abfd); module->modbeg = modbeg; module->size = msize; module->low = start; module->high = start + length; module->next = list; list = module; ptr += DBG_S_C_DMT_PSECT_SIZE; vms_debug2 ((4, "section: start = 0x%x, length = %d\n", start, length)); } } } else { /* We don't have a DMT section so this must be an object. Parse the module right now in order to compute its start address and end address. */ void *dst = PRIV (dst_section)->contents; if (dst == NULL) return NULL; module = new_module (abfd); parse_module (abfd, module, PRIV (dst_section)->contents, -1); list = module; } return list; } /* Calculate and return the name of the source file and the line nearest to the wanted location in the specified module. */ static bfd_boolean module_find_nearest_line (bfd *abfd, struct module *module, bfd_vma addr, const char **file, const char **func, unsigned int *line) { struct funcinfo *funcinfo; struct lineinfo *lineinfo; struct srecinfo *srecinfo; bfd_boolean ret = FALSE; /* Parse this module if that was not done at module creation. */ if (! IS_MODULE_PARSED (module)) { unsigned int size = module->size; unsigned int modbeg = PRIV (dst_section)->filepos + module->modbeg; unsigned char *buffer = (unsigned char *) bfd_malloc (module->size); if (bfd_seek (abfd, modbeg, SEEK_SET) != 0 || bfd_bread (buffer, size, abfd) != size) { bfd_set_error (bfd_error_no_debug_section); return FALSE; } parse_module (abfd, module, buffer, size); free (buffer); } /* Find out the function (if any) that contains the address. */ for (funcinfo = module->func_table; funcinfo; funcinfo = funcinfo->next) if (addr >= funcinfo->low && addr <= funcinfo->high) { *func = funcinfo->name; ret = TRUE; break; } /* Find out the source file and the line nearest to the address. */ for (lineinfo = module->line_table; lineinfo; lineinfo = lineinfo->next) if (lineinfo->next && addr < lineinfo->next->address) { for (srecinfo = module->srec_table; srecinfo; srecinfo = srecinfo->next) if (srecinfo->next && lineinfo->line < srecinfo->next->line) { if (srecinfo->sfile > 0) { *file = module->file_table[srecinfo->sfile].name; *line = srecinfo->srec + lineinfo->line - srecinfo->line; } else { *file = module->name; *line = lineinfo->line; } return TRUE; } break; } return ret; } /* Provided a BFD, a section and an offset into the section, calculate and return the name of the source file and the line nearest to the wanted location. */ static bfd_boolean _bfd_vms_find_nearest_line (bfd *abfd, asymbol **symbols ATTRIBUTE_UNUSED, asection *section, bfd_vma offset, const char **file, const char **func, unsigned int *line, unsigned int *discriminator) { struct module *module; /* What address are we looking for? */ bfd_vma addr = section->vma + offset; *file = NULL; *func = NULL; *line = 0; if (discriminator) *discriminator = 0; /* We can't do anything if there is no DST (debug symbol table). */ if (PRIV (dst_section) == NULL) return FALSE; /* Create the module list - if not already done. */ if (PRIV (modules) == NULL) { PRIV (modules) = build_module_list (abfd); if (PRIV (modules) == NULL) return FALSE; } for (module = PRIV (modules); module; module = module->next) if (addr >= module->low && addr <= module->high) return module_find_nearest_line (abfd, module, addr, file, func, line); return FALSE; } /* Canonicalizations. */ /* Set name, value, section and flags of SYM from E. */ static bfd_boolean alpha_vms_convert_symbol (bfd *abfd, struct vms_symbol_entry *e, asymbol *sym) { flagword flags; symvalue value; asection *sec; const char *name; name = e->name; value = 0; flags = BSF_NO_FLAGS; sec = NULL; switch (e->typ) { case EGSD__C_SYM: if (e->flags & EGSY__V_WEAK) flags |= BSF_WEAK; if (e->flags & EGSY__V_DEF) { /* Symbol definition. */ flags |= BSF_GLOBAL; if (e->flags & EGSY__V_NORM) flags |= BSF_FUNCTION; value = e->value; sec = e->section; } else { /* Symbol reference. */ sec = bfd_und_section_ptr; } break; case EGSD__C_SYMG: /* A universal symbol is by definition global... */ flags |= BSF_GLOBAL; /* ...and dynamic in shared libraries. */ if (abfd->flags & DYNAMIC) flags |= BSF_DYNAMIC; if (e->flags & EGSY__V_WEAK) flags |= BSF_WEAK; if (!(e->flags & EGSY__V_DEF)) abort (); if (e->flags & EGSY__V_NORM) flags |= BSF_FUNCTION; value = e->value; /* sec = e->section; */ sec = bfd_abs_section_ptr; break; default: return FALSE; } sym->name = name; sym->section = sec; sym->flags = flags; sym->value = value; return TRUE; } /* Return the number of bytes required to store a vector of pointers to asymbols for all the symbols in the BFD abfd, including a terminal NULL pointer. If there are no symbols in the BFD, then return 0. If an error occurs, return -1. */ static long alpha_vms_get_symtab_upper_bound (bfd *abfd) { vms_debug2 ((1, "alpha_vms_get_symtab_upper_bound (%p), %d symbols\n", abfd, PRIV (gsd_sym_count))); return (PRIV (gsd_sym_count) + 1) * sizeof (asymbol *); } /* Read the symbols from the BFD abfd, and fills in the vector location with pointers to the symbols and a trailing NULL. Return number of symbols read. */ static long alpha_vms_canonicalize_symtab (bfd *abfd, asymbol **symbols) { unsigned int i; vms_debug2 ((1, "alpha_vms_canonicalize_symtab (%p, <ret>)\n", abfd)); if (PRIV (csymbols) == NULL) { PRIV (csymbols) = (asymbol **) bfd_alloc (abfd, PRIV (gsd_sym_count) * sizeof (asymbol *)); /* Traverse table and fill symbols vector. */ for (i = 0; i < PRIV (gsd_sym_count); i++) { struct vms_symbol_entry *e = PRIV (syms)[i]; asymbol *sym; sym = bfd_make_empty_symbol (abfd); if (sym == NULL || !alpha_vms_convert_symbol (abfd, e, sym)) { bfd_release (abfd, PRIV (csymbols)); PRIV (csymbols) = NULL; return -1; } PRIV (csymbols)[i] = sym; } } if (symbols != NULL) { for (i = 0; i < PRIV (gsd_sym_count); i++) symbols[i] = PRIV (csymbols)[i]; symbols[i] = NULL; } return PRIV (gsd_sym_count); } /* Read and convert relocations from ETIR. We do it once for all sections. */ static bfd_boolean alpha_vms_slurp_relocs (bfd *abfd) { int cur_psect = -1; vms_debug2 ((3, "alpha_vms_slurp_relocs\n")); /* We slurp relocs only once, for all sections. */ if (PRIV (reloc_done)) return TRUE; PRIV (reloc_done) = TRUE; if (alpha_vms_canonicalize_symtab (abfd, NULL) < 0) return FALSE; if (bfd_seek (abfd, 0, SEEK_SET) != 0) return FALSE; while (1) { unsigned char *begin; unsigned char *end; unsigned char *ptr; bfd_reloc_code_real_type reloc_code; int type; bfd_vma vaddr = 0; int length; bfd_vma cur_address; int cur_psidx = -1; unsigned char *cur_sym = NULL; int prev_cmd = -1; bfd_vma cur_addend = 0; /* Skip non-ETIR records. */ type = _bfd_vms_get_object_record (abfd); if (type == EOBJ__C_EEOM) break; if (type != EOBJ__C_ETIR) continue; begin = PRIV (recrd.rec) + 4; end = PRIV (recrd.rec) + PRIV (recrd.rec_size); for (ptr = begin; ptr < end; ptr += length) { int cmd; cmd = bfd_getl16 (ptr); length = bfd_getl16 (ptr + 2); cur_address = vaddr; vms_debug2 ((4, "alpha_vms_slurp_relocs: etir %s\n", _bfd_vms_etir_name (cmd))); switch (cmd) { case ETIR__C_STA_GBL: /* ALPHA_R_REFLONG und_section, step 1 */ /* ALPHA_R_REFQUAD und_section, step 1 */ cur_sym = ptr + 4; prev_cmd = cmd; continue; case ETIR__C_STA_PQ: /* ALPHA_R_REF{LONG|QUAD}, others part 1 */ cur_psidx = bfd_getl32 (ptr + 4); cur_addend = bfd_getl64 (ptr + 8); prev_cmd = cmd; continue; case ETIR__C_CTL_SETRB: if (prev_cmd != ETIR__C_STA_PQ) { _bfd_error_handler /* xgettext:c-format */ (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (cmd)); return FALSE; } cur_psect = cur_psidx; vaddr = cur_addend; cur_psidx = -1; cur_addend = 0; continue; case ETIR__C_STA_LW: /* ALPHA_R_REFLONG abs_section, step 1 */ /* ALPHA_R_REFLONG und_section, step 2 */ if (prev_cmd != -1) { if (prev_cmd != ETIR__C_STA_GBL) { _bfd_error_handler /* xgettext:c-format */ (_("unknown reloc %s + %s"), _bfd_vms_etir_name (cmd), _bfd_vms_etir_name (ETIR__C_STA_LW)); return FALSE; } } cur_addend = bfd_getl32 (ptr + 4); prev_cmd = cmd; continue; case ETIR__C_STA_QW: /* ALPHA_R_REFQUAD abs_section, step 1 */ /* ALPHA_R_REFQUAD und_section, step 2 */ if (prev_cmd != -1 && prev_cmd != ETIR__C_STA_GBL) { _bfd_error_handler /* xgettext:c-format */ (_("unknown reloc %s + %s"), _bfd_vms_etir_name (cmd), _bfd_vms_etir_name (ETIR__C_STA_QW)); return FALSE; } cur_addend = bfd_getl64 (ptr + 4); prev_cmd = cmd; continue; case ETIR__C_STO_LW: /* ALPHA_R_REFLONG und_section, step 4 */ /* ALPHA_R_REFLONG abs_section, step 2 */ /* ALPHA_R_REFLONG others, step 2 */ if (prev_cmd != ETIR__C_OPR_ADD && prev_cmd != ETIR__C_STA_LW && prev_cmd != ETIR__C_STA_PQ) { /* xgettext:c-format */ _bfd_error_handler (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (ETIR__C_STO_LW)); return FALSE; } reloc_code = BFD_RELOC_32; break; case ETIR__C_STO_QW: /* ALPHA_R_REFQUAD und_section, step 4 */ /* ALPHA_R_REFQUAD abs_section, step 2 */ if (prev_cmd != ETIR__C_OPR_ADD && prev_cmd != ETIR__C_STA_QW) { /* xgettext:c-format */ _bfd_error_handler (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (ETIR__C_STO_QW)); return FALSE; } reloc_code = BFD_RELOC_64; break; case ETIR__C_STO_OFF: /* ALPHA_R_REFQUAD others, step 2 */ if (prev_cmd != ETIR__C_STA_PQ) { /* xgettext:c-format */ _bfd_error_handler (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (ETIR__C_STO_OFF)); return FALSE; } reloc_code = BFD_RELOC_64; break; case ETIR__C_OPR_ADD: /* ALPHA_R_REFLONG und_section, step 3 */ /* ALPHA_R_REFQUAD und_section, step 3 */ if (prev_cmd != ETIR__C_STA_LW && prev_cmd != ETIR__C_STA_QW) { /* xgettext:c-format */ _bfd_error_handler (_("unknown reloc %s + %s"), _bfd_vms_etir_name (prev_cmd), _bfd_vms_etir_name (ETIR__C_OPR_ADD)); return FALSE; } prev_cmd = ETIR__C_OPR_ADD; continue; case ETIR__C_STO_CA: /* ALPHA_R_CODEADDR */ reloc_code = BFD_RELOC_ALPHA_CODEADDR; cur_sym = ptr + 4; break; case ETIR__C_STO_GBL: /* ALPHA_R_REFQUAD und_section */ reloc_code = BFD_RELOC_64; cur_sym = ptr + 4; break; case ETIR__C_STO_GBL_LW: /* ALPHA_R_REFLONG und_section */ reloc_code = BFD_RELOC_32; cur_sym = ptr + 4; break; case ETIR__C_STC_LP_PSB: /* ALPHA_R_LINKAGE */ reloc_code = BFD_RELOC_ALPHA_LINKAGE; cur_sym = ptr + 8; break; case ETIR__C_STC_NOP_GBL: /* ALPHA_R_NOP */ reloc_code = BFD_RELOC_ALPHA_NOP; goto call_reloc; case ETIR__C_STC_BSR_GBL: /* ALPHA_R_BSR */ reloc_code = BFD_RELOC_ALPHA_BSR; goto call_reloc; case ETIR__C_STC_LDA_GBL: /* ALPHA_R_LDA */ reloc_code = BFD_RELOC_ALPHA_LDA; goto call_reloc; case ETIR__C_STC_BOH_GBL: /* ALPHA_R_BOH */ reloc_code = BFD_RELOC_ALPHA_BOH; goto call_reloc; call_reloc: cur_sym = ptr + 4 + 32; cur_address = bfd_getl64 (ptr + 4 + 8); cur_addend = bfd_getl64 (ptr + 4 + 24); break; case ETIR__C_STO_IMM: vaddr += bfd_getl32 (ptr + 4); continue; default: _bfd_error_handler (_("unknown reloc %s"), _bfd_vms_etir_name (cmd)); return FALSE; } { asection *sec; struct vms_section_data_struct *vms_sec; arelent *reloc; bfd_size_type size; /* Get section to which the relocation applies. */ if (cur_psect < 0 || cur_psect > (int)PRIV (section_count)) { _bfd_error_handler (_("invalid section index in ETIR")); return FALSE; } if (PRIV (sections) == NULL) return FALSE; sec = PRIV (sections)[cur_psect]; if (sec == bfd_abs_section_ptr) { _bfd_error_handler (_("relocation for non-REL psect")); return FALSE; } vms_sec = vms_section_data (sec); /* Allocate a reloc entry. */ if (sec->reloc_count >= vms_sec->reloc_max) { if (vms_sec->reloc_max == 0) { vms_sec->reloc_max = 64; sec->relocation = bfd_zmalloc (vms_sec->reloc_max * sizeof (arelent)); } else { vms_sec->reloc_max *= 2; sec->relocation = bfd_realloc (sec->relocation, vms_sec->reloc_max * sizeof (arelent)); } } reloc = &sec->relocation[sec->reloc_count]; sec->reloc_count++; reloc->howto = bfd_reloc_type_lookup (abfd, reloc_code); if (cur_sym != NULL) { unsigned int j; unsigned int symlen = *cur_sym; asymbol **sym; /* Linear search. */ symlen = *cur_sym; cur_sym++; sym = NULL; for (j = 0; j < PRIV (gsd_sym_count); j++) if (PRIV (syms)[j]->namelen == symlen && memcmp (PRIV (syms)[j]->name, cur_sym, symlen) == 0) { sym = &PRIV (csymbols)[j]; break; } if (sym == NULL) { _bfd_error_handler (_("unknown symbol in command %s"), _bfd_vms_etir_name (cmd)); reloc->sym_ptr_ptr = NULL; } else reloc->sym_ptr_ptr = sym; } else if (cur_psidx >= 0) { if (PRIV (sections) == NULL || cur_psidx >= (int) PRIV (section_count)) return FALSE; reloc->sym_ptr_ptr = PRIV (sections)[cur_psidx]->symbol_ptr_ptr; } else reloc->sym_ptr_ptr = NULL; reloc->address = cur_address; reloc->addend = cur_addend; if (reloc_code == ALPHA_R_LINKAGE) size = 16; else size = bfd_get_reloc_size (reloc->howto); vaddr += size; } cur_addend = 0; prev_cmd = -1; cur_sym = NULL; cur_psidx = -1; } } vms_debug2 ((3, "alpha_vms_slurp_relocs: result = TRUE\n")); return TRUE; } /* Return the number of bytes required to store the relocation information associated with the given section. */ static long alpha_vms_get_reloc_upper_bound (bfd *abfd ATTRIBUTE_UNUSED, asection *section) { alpha_vms_slurp_relocs (abfd); return (section->reloc_count + 1) * sizeof (arelent *); } /* Convert relocations from VMS (external) form into BFD internal form. Return the number of relocations. */ static long alpha_vms_canonicalize_reloc (bfd *abfd, asection *section, arelent **relptr, asymbol **symbols ATTRIBUTE_UNUSED) { arelent *tblptr; int count; if (!alpha_vms_slurp_relocs (abfd)) return -1; count = section->reloc_count; tblptr = section->relocation; while (count--) *relptr++ = tblptr++; *relptr = (arelent *) NULL; return section->reloc_count; } /* Install a new set of internal relocs. */ #define alpha_vms_set_reloc _bfd_generic_set_reloc /* This is just copied from ecoff-alpha, needs to be fixed probably. */ /* How to process the various reloc types. */ static bfd_reloc_status_type reloc_nil (bfd * abfd ATTRIBUTE_UNUSED, arelent *reloc ATTRIBUTE_UNUSED, asymbol *sym ATTRIBUTE_UNUSED, void * data ATTRIBUTE_UNUSED, asection *sec ATTRIBUTE_UNUSED, bfd *output_bfd ATTRIBUTE_UNUSED, char **error_message ATTRIBUTE_UNUSED) { #if VMS_DEBUG vms_debug (1, "reloc_nil (abfd %p, output_bfd %p)\n", abfd, output_bfd); vms_debug (2, "In section %s, symbol %s\n", sec->name, sym->name); vms_debug (2, "reloc sym %s, addr %08lx, addend %08lx, reloc is a %s\n", reloc->sym_ptr_ptr[0]->name, (unsigned long)reloc->address, (unsigned long)reloc->addend, reloc->howto->name); vms_debug (2, "data at %p\n", data); /* _bfd_hexdump (2, data, bfd_get_reloc_size (reloc->howto), 0); */ #endif return bfd_reloc_ok; } /* In case we're on a 32-bit machine, construct a 64-bit "-1" value from smaller values. Start with zero, widen, *then* decrement. */ #define MINUS_ONE (((bfd_vma)0) - 1) static reloc_howto_type alpha_howto_table[] = { HOWTO (ALPHA_R_IGNORE, /* Type. */ 0, /* Rightshift. */ 0, /* Size (0 = byte, 1 = short, 2 = long). */ 8, /* Bitsize. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "IGNORE", /* Name. */ TRUE, /* Partial_inplace. */ 0, /* Source mask */ 0, /* Dest mask. */ TRUE), /* PC rel offset. */ /* A 64 bit reference to a symbol. */ HOWTO (ALPHA_R_REFQUAD, /* Type. */ 0, /* Rightshift. */ 4, /* Size (0 = byte, 1 = short, 2 = long). */ 64, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_bitfield, /* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "REFQUAD", /* Name. */ TRUE, /* Partial_inplace. */ MINUS_ONE, /* Source mask. */ MINUS_ONE, /* Dest mask. */ FALSE), /* PC rel offset. */ /* A 21 bit branch. The native assembler generates these for branches within the text segment, and also fills in the PC relative offset in the instruction. */ HOWTO (ALPHA_R_BRADDR, /* Type. */ 2, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 21, /* Bitsize. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_signed, /* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "BRADDR", /* Name. */ TRUE, /* Partial_inplace. */ 0x1fffff, /* Source mask. */ 0x1fffff, /* Dest mask. */ FALSE), /* PC rel offset. */ /* A hint for a jump to a register. */ HOWTO (ALPHA_R_HINT, /* Type. */ 2, /* Rightshift. */ 1, /* Size (0 = byte, 1 = short, 2 = long). */ 14, /* Bitsize. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "HINT", /* Name. */ TRUE, /* Partial_inplace. */ 0x3fff, /* Source mask. */ 0x3fff, /* Dest mask. */ FALSE), /* PC rel offset. */ /* 16 bit PC relative offset. */ HOWTO (ALPHA_R_SREL16, /* Type. */ 0, /* Rightshift. */ 1, /* Size (0 = byte, 1 = short, 2 = long). */ 16, /* Bitsize. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_signed, /* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "SREL16", /* Name. */ TRUE, /* Partial_inplace. */ 0xffff, /* Source mask. */ 0xffff, /* Dest mask. */ FALSE), /* PC rel offset. */ /* 32 bit PC relative offset. */ HOWTO (ALPHA_R_SREL32, /* Type. */ 0, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 32, /* Bitsize. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_signed, /* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "SREL32", /* Name. */ TRUE, /* Partial_inplace. */ 0xffffffff, /* Source mask. */ 0xffffffff, /* Dest mask. */ FALSE), /* PC rel offset. */ /* A 64 bit PC relative offset. */ HOWTO (ALPHA_R_SREL64, /* Type. */ 0, /* Rightshift. */ 4, /* Size (0 = byte, 1 = short, 2 = long). */ 64, /* Bitsize. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_signed, /* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "SREL64", /* Name. */ TRUE, /* Partial_inplace. */ MINUS_ONE, /* Source mask. */ MINUS_ONE, /* Dest mask. */ FALSE), /* PC rel offset. */ /* Push a value on the reloc evaluation stack. */ HOWTO (ALPHA_R_OP_PUSH, /* Type. */ 0, /* Rightshift. */ 0, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "OP_PUSH", /* Name. */ FALSE, /* Partial_inplace. */ 0, /* Source mask. */ 0, /* Dest mask. */ FALSE), /* PC rel offset. */ /* Store the value from the stack at the given address. Store it in a bitfield of size r_size starting at bit position r_offset. */ HOWTO (ALPHA_R_OP_STORE, /* Type. */ 0, /* Rightshift. */ 4, /* Size (0 = byte, 1 = short, 2 = long). */ 64, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "OP_STORE", /* Name. */ FALSE, /* Partial_inplace. */ 0, /* Source mask. */ MINUS_ONE, /* Dest mask. */ FALSE), /* PC rel offset. */ /* Subtract the reloc address from the value on the top of the relocation stack. */ HOWTO (ALPHA_R_OP_PSUB, /* Type. */ 0, /* Rightshift. */ 0, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "OP_PSUB", /* Name. */ FALSE, /* Partial_inplace. */ 0, /* Source mask. */ 0, /* Dest mask. */ FALSE), /* PC rel offset. */ /* Shift the value on the top of the relocation stack right by the given value. */ HOWTO (ALPHA_R_OP_PRSHIFT, /* Type. */ 0, /* Rightshift. */ 0, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "OP_PRSHIFT", /* Name. */ FALSE, /* Partial_inplace. */ 0, /* Source mask. */ 0, /* Dest mask. */ FALSE), /* PC rel offset. */ /* Hack. Linkage is done by linker. */ HOWTO (ALPHA_R_LINKAGE, /* Type. */ 0, /* Rightshift. */ 0, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "LINKAGE", /* Name. */ FALSE, /* Partial_inplace. */ 0, /* Source mask. */ 0, /* Dest mask. */ FALSE), /* PC rel offset. */ /* A 32 bit reference to a symbol. */ HOWTO (ALPHA_R_REFLONG, /* Type. */ 0, /* Rightshift. */ 2, /* Size (0 = byte, 1 = short, 2 = long). */ 32, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_bitfield, /* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "REFLONG", /* Name. */ TRUE, /* Partial_inplace. */ 0xffffffff, /* Source mask. */ 0xffffffff, /* Dest mask. */ FALSE), /* PC rel offset. */ /* A 64 bit reference to a procedure, written as 32 bit value. */ HOWTO (ALPHA_R_CODEADDR, /* Type. */ 0, /* Rightshift. */ 4, /* Size (0 = byte, 1 = short, 2 = long). */ 64, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_signed,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "CODEADDR", /* Name. */ FALSE, /* Partial_inplace. */ 0xffffffff, /* Source mask. */ 0xffffffff, /* Dest mask. */ FALSE), /* PC rel offset. */ HOWTO (ALPHA_R_NOP, /* Type. */ 0, /* Rightshift. */ 3, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ /* The following value must match that of ALPHA_R_BSR/ALPHA_R_BOH because the calculations for the 3 relocations are the same. See B.4.5.2 of the OpenVMS Linker Utility Manual. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "NOP", /* Name. */ FALSE, /* Partial_inplace. */ 0xffffffff, /* Source mask. */ 0xffffffff, /* Dest mask. */ FALSE), /* PC rel offset. */ HOWTO (ALPHA_R_BSR, /* Type. */ 0, /* Rightshift. */ 3, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "BSR", /* Name. */ FALSE, /* Partial_inplace. */ 0xffffffff, /* Source mask. */ 0xffffffff, /* Dest mask. */ FALSE), /* PC rel offset. */ HOWTO (ALPHA_R_LDA, /* Type. */ 0, /* Rightshift. */ 3, /* Size (0 = byte, 1 = short, 2 = long). */ 0, /* Bitsize. */ FALSE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "LDA", /* Name. */ FALSE, /* Partial_inplace. */ 0xffffffff, /* Source mask. */ 0xffffffff, /* Dest mask. */ FALSE), /* PC rel offset. */ HOWTO (ALPHA_R_BOH, /* Type. */ 0, /* Rightshift. */ 3, /* Size (0 = byte, 1 = short, 2 = long, 3 = nil). */ 0, /* Bitsize. */ TRUE, /* PC relative. */ 0, /* Bitpos. */ complain_overflow_dont,/* Complain_on_overflow. */ reloc_nil, /* Special_function. */ "BOH", /* Name. */ FALSE, /* Partial_inplace. */ 0xffffffff, /* Source mask. */ 0xffffffff, /* Dest mask. */ FALSE), /* PC rel offset. */ }; /* Return a pointer to a howto structure which, when invoked, will perform the relocation code on data from the architecture noted. */ static reloc_howto_type * alpha_vms_bfd_reloc_type_lookup (bfd * abfd ATTRIBUTE_UNUSED, bfd_reloc_code_real_type code) { int alpha_type; vms_debug2 ((1, "vms_bfd_reloc_type_lookup (%p, %d)\t", abfd, code)); switch (code) { case BFD_RELOC_16: alpha_type = ALPHA_R_SREL16; break; case BFD_RELOC_32: alpha_type = ALPHA_R_REFLONG; break; case BFD_RELOC_64: alpha_type = ALPHA_R_REFQUAD; break; case BFD_RELOC_CTOR: alpha_type = ALPHA_R_REFQUAD; break; case BFD_RELOC_23_PCREL_S2: alpha_type = ALPHA_R_BRADDR; break; case BFD_RELOC_ALPHA_HINT: alpha_type = ALPHA_R_HINT; break; case BFD_RELOC_16_PCREL: alpha_type = ALPHA_R_SREL16; break; case BFD_RELOC_32_PCREL: alpha_type = ALPHA_R_SREL32; break; case BFD_RELOC_64_PCREL: alpha_type = ALPHA_R_SREL64; break; case BFD_RELOC_ALPHA_LINKAGE: alpha_type = ALPHA_R_LINKAGE; break; case BFD_RELOC_ALPHA_CODEADDR: alpha_type = ALPHA_R_CODEADDR; break; case BFD_RELOC_ALPHA_NOP: alpha_type = ALPHA_R_NOP; break; case BFD_RELOC_ALPHA_BSR: alpha_type = ALPHA_R_BSR; break; case BFD_RELOC_ALPHA_LDA: alpha_type = ALPHA_R_LDA; break; case BFD_RELOC_ALPHA_BOH: alpha_type = ALPHA_R_BOH; break; default: _bfd_error_handler (_("reloc (%d) is *UNKNOWN*"), code); return NULL; } vms_debug2 ((2, "reloc is %s\n", alpha_howto_table[alpha_type].name)); return & alpha_howto_table[alpha_type]; } static reloc_howto_type * alpha_vms_bfd_reloc_name_lookup (bfd *abfd ATTRIBUTE_UNUSED, const char *r_name) { unsigned int i; for (i = 0; i < sizeof (alpha_howto_table) / sizeof (alpha_howto_table[0]); i++) if (alpha_howto_table[i].name != NULL && strcasecmp (alpha_howto_table[i].name, r_name) == 0) return &alpha_howto_table[i]; return NULL; } static long alpha_vms_get_synthetic_symtab (bfd *abfd, long symcount ATTRIBUTE_UNUSED, asymbol **usyms ATTRIBUTE_UNUSED, long dynsymcount ATTRIBUTE_UNUSED, asymbol **dynsyms ATTRIBUTE_UNUSED, asymbol **ret) { asymbol *syms; unsigned int i; unsigned int n = 0; syms = (asymbol *) bfd_malloc (PRIV (norm_sym_count) * sizeof (asymbol)); *ret = syms; if (syms == NULL) return -1; for (i = 0; i < PRIV (gsd_sym_count); i++) { struct vms_symbol_entry *e = PRIV (syms)[i]; asymbol *sym; flagword flags; symvalue value; asection *sec; const char *name; char *sname; int l; name = e->name; value = 0; flags = BSF_LOCAL | BSF_SYNTHETIC; sec = NULL; switch (e->typ) { case EGSD__C_SYM: case EGSD__C_SYMG: if ((e->flags & EGSY__V_DEF) && (e->flags & EGSY__V_NORM)) { value = e->code_value; sec = e->code_section; } else continue; break; default: continue; } l = strlen (name); sname = bfd_alloc (abfd, l + 5); if (sname == NULL) return FALSE; memcpy (sname, name, l); memcpy (sname + l, "..en", 5); sym = &syms[n++]; sym->name = sname; sym->section = sec; sym->flags = flags; sym->value = value; sym->udata.p = NULL; } return n; } /* Private dump. */ static const char * vms_time_to_str (unsigned char *buf) { time_t t = vms_rawtime_to_time_t (buf); char *res = ctime (&t); if (!res) res = "*invalid time*"; else res[24] = 0; return res; } static void evax_bfd_print_emh (FILE *file, unsigned char *rec, unsigned int rec_len) { struct vms_emh_common *emh = (struct vms_emh_common *)rec; unsigned int subtype; int extra; subtype = (unsigned) bfd_getl16 (emh->subtyp); /* xgettext:c-format */ fprintf (file, _(" EMH %u (len=%u): "), subtype, rec_len); /* PR 21618: Check for invalid lengths. */ if (rec_len < sizeof (* emh)) { fprintf (file, _(" Error: The length is less than the length of an EMH record\n")); return; } extra = rec_len - sizeof (struct vms_emh_common); switch (subtype) { case EMH__C_MHD: { struct vms_emh_mhd *mhd = (struct vms_emh_mhd *) rec; const char * name; const char * nextname; const char * maxname; /* PR 21840: Check for invalid lengths. */ if (rec_len < sizeof (* mhd)) { fprintf (file, _(" Error: The record length is less than the size of an EMH_MHD record\n")); return; } fprintf (file, _("Module header\n")); fprintf (file, _(" structure level: %u\n"), mhd->strlvl); fprintf (file, _(" max record size: %u\n"), (unsigned) bfd_getl32 (mhd->recsiz)); name = (char *)(mhd + 1); maxname = (char *) rec + rec_len; if (name > maxname - 2) { fprintf (file, _(" Error: The module name is missing\n")); return; } nextname = name + name[0] + 1; if (nextname >= maxname) { fprintf (file, _(" Error: The module name is too long\n")); return; } fprintf (file, _(" module name : %.*s\n"), name[0], name + 1); name = nextname; if (name > maxname - 2) { fprintf (file, _(" Error: The module version is missing\n")); return; } nextname = name + name[0] + 1; if (nextname >= maxname) { fprintf (file, _(" Error: The module version is too long\n")); return; } fprintf (file, _(" module version : %.*s\n"), name[0], name + 1); name = nextname; if ((maxname - name) < 17 && maxname[-1] != 0) fprintf (file, _(" Error: The compile date is truncated\n")); else fprintf (file, _(" compile date : %.17s\n"), name); } break; case EMH__C_LNM: fprintf (file, _("Language Processor Name\n")); fprintf (file, _(" language name: %.*s\n"), extra, (char *)(emh + 1)); break; case EMH__C_SRC: fprintf (file, _("Source Files Header\n")); fprintf (file, _(" file: %.*s\n"), extra, (char *)(emh + 1)); break; case EMH__C_TTL: fprintf (file, _("Title Text Header\n")); fprintf (file, _(" title: %.*s\n"), extra, (char *)(emh + 1)); break; case EMH__C_CPR: fprintf (file, _("Copyright Header\n")); fprintf (file, _(" copyright: %.*s\n"), extra, (char *)(emh + 1)); break; default: fprintf (file, _("unhandled emh subtype %u\n"), subtype); break; } } static void evax_bfd_print_eeom (FILE *file, unsigned char *rec, unsigned int rec_len) { struct vms_eeom *eeom = (struct vms_eeom *)rec; fprintf (file, _(" EEOM (len=%u):\n"), rec_len); /* PR 21618: Check for invalid lengths. */ if (rec_len < sizeof (* eeom)) { fprintf (file, _(" Error: The length is less than the length of an EEOM record\n")); return; } fprintf (file, _(" number of cond linkage pairs: %u\n"), (unsigned)bfd_getl32 (eeom->total_lps)); fprintf (file, _(" completion code: %u\n"), (unsigned)bfd_getl16 (eeom->comcod)); if (rec_len > 10) { fprintf (file, _(" transfer addr flags: 0x%02x\n"), eeom->tfrflg); fprintf (file, _(" transfer addr psect: %u\n"), (unsigned)bfd_getl32 (eeom->psindx)); fprintf (file, _(" transfer address : 0x%08x\n"), (unsigned)bfd_getl32 (eeom->tfradr)); } } static void exav_bfd_print_egsy_flags (unsigned int flags, FILE *file) { if (flags & EGSY__V_WEAK) fputs (_(" WEAK"), file); if (flags & EGSY__V_DEF) fputs (_(" DEF"), file); if (flags & EGSY__V_UNI) fputs (_(" UNI"), file); if (flags & EGSY__V_REL) fputs (_(" REL"), file); if (flags & EGSY__V_COMM) fputs (_(" COMM"), file); if (flags & EGSY__V_VECEP) fputs (_(" VECEP"), file); if (flags & EGSY__V_NORM) fputs (_(" NORM"), file); if (flags & EGSY__V_QUAD_VAL) fputs (_(" QVAL"), file); } static void evax_bfd_print_egsd_flags (FILE *file, unsigned int flags) { if (flags & EGPS__V_PIC) fputs (_(" PIC"), file); if (flags & EGPS__V_LIB) fputs (_(" LIB"), file); if (flags & EGPS__V_OVR) fputs (_(" OVR"), file); if (flags & EGPS__V_REL) fputs (_(" REL"), file); if (flags & EGPS__V_GBL) fputs (_(" GBL"), file); if (flags & EGPS__V_SHR) fputs (_(" SHR"), file); if (flags & EGPS__V_EXE) fputs (_(" EXE"), file); if (flags & EGPS__V_RD) fputs (_(" RD"), file); if (flags & EGPS__V_WRT) fputs (_(" WRT"), file); if (flags & EGPS__V_VEC) fputs (_(" VEC"), file); if (flags & EGPS__V_NOMOD) fputs (_(" NOMOD"), file); if (flags & EGPS__V_COM) fputs (_(" COM"), file); if (flags & EGPS__V_ALLOC_64BIT) fputs (_(" 64B"), file); } static void evax_bfd_print_egsd (FILE *file, unsigned char *rec, unsigned int rec_len) { unsigned int off = sizeof (struct vms_egsd); unsigned int n; fprintf (file, _(" EGSD (len=%u):\n"), rec_len); n = 0; for (off = sizeof (struct vms_egsd); off < rec_len; ) { struct vms_egsd_entry *e = (struct vms_egsd_entry *)(rec + off); unsigned int type; unsigned int len; type = (unsigned)bfd_getl16 (e->gsdtyp); len = (unsigned)bfd_getl16 (e->gsdsiz); /* xgettext:c-format */ fprintf (file, _(" EGSD entry %2u (type: %u, len: %u): "), n, type, len); n++; if (off + len > rec_len || off + len < off) { fprintf (file, _(" Error: length larger than remaining space in record\n")); return; } switch (type) { case EGSD__C_PSC: { struct vms_egps *egps = (struct vms_egps *)e; unsigned int flags = bfd_getl16 (egps->flags); unsigned int l; fprintf (file, _("PSC - Program section definition\n")); fprintf (file, _(" alignment : 2**%u\n"), egps->align); fprintf (file, _(" flags : 0x%04x"), flags); evax_bfd_print_egsd_flags (file, flags); fputc ('\n', file); l = bfd_getl32 (egps->alloc); fprintf (file, _(" alloc (len): %u (0x%08x)\n"), l, l); fprintf (file, _(" name : %.*s\n"), egps->namlng, egps->name); } break; case EGSD__C_SPSC: { struct vms_esgps *esgps = (struct vms_esgps *)e; unsigned int flags = bfd_getl16 (esgps->flags); unsigned int l; fprintf (file, _("SPSC - Shared Image Program section def\n")); fprintf (file, _(" alignment : 2**%u\n"), esgps->align); fprintf (file, _(" flags : 0x%04x"), flags); evax_bfd_print_egsd_flags (file, flags); fputc ('\n', file); l = bfd_getl32 (esgps->alloc); fprintf (file, _(" alloc (len) : %u (0x%08x)\n"), l, l); fprintf (file, _(" image offset : 0x%08x\n"), (unsigned int)bfd_getl32 (esgps->base)); fprintf (file, _(" symvec offset : 0x%08x\n"), (unsigned int)bfd_getl32 (esgps->value)); fprintf (file, _(" name : %.*s\n"), esgps->namlng, esgps->name); } break; case EGSD__C_SYM: { struct vms_egsy *egsy = (struct vms_egsy *)e; unsigned int flags = bfd_getl16 (egsy->flags); if (flags & EGSY__V_DEF) { struct vms_esdf *esdf = (struct vms_esdf *)e; fprintf (file, _("SYM - Global symbol definition\n")); fprintf (file, _(" flags: 0x%04x"), flags); exav_bfd_print_egsy_flags (flags, file); fputc ('\n', file); fprintf (file, _(" psect offset: 0x%08x\n"), (unsigned)bfd_getl32 (esdf->value)); if (flags & EGSY__V_NORM) { fprintf (file, _(" code address: 0x%08x\n"), (unsigned)bfd_getl32 (esdf->code_address)); fprintf (file, _(" psect index for entry point : %u\n"), (unsigned)bfd_getl32 (esdf->ca_psindx)); } fprintf (file, _(" psect index : %u\n"), (unsigned)bfd_getl32 (esdf->psindx)); fprintf (file, _(" name : %.*s\n"), esdf->namlng, esdf->name); } else { struct vms_esrf *esrf = (struct vms_esrf *)e; fprintf (file, _("SYM - Global symbol reference\n")); fprintf (file, _(" name : %.*s\n"), esrf->namlng, esrf->name); } } break; case EGSD__C_IDC: { struct vms_eidc *eidc = (struct vms_eidc *)e; unsigned int flags = bfd_getl32 (eidc->flags); unsigned char *p; fprintf (file, _("IDC - Ident Consistency check\n")); fprintf (file, _(" flags : 0x%08x"), flags); if (flags & EIDC__V_BINIDENT) fputs (" BINDENT", file); fputc ('\n', file); fprintf (file, _(" id match : %x\n"), (flags >> EIDC__V_IDMATCH_SH) & EIDC__V_IDMATCH_MASK); fprintf (file, _(" error severity: %x\n"), (flags >> EIDC__V_ERRSEV_SH) & EIDC__V_ERRSEV_MASK); p = eidc->name; fprintf (file, _(" entity name : %.*s\n"), p[0], p + 1); p += 1 + p[0]; fprintf (file, _(" object name : %.*s\n"), p[0], p + 1); p += 1 + p[0]; if (flags & EIDC__V_BINIDENT) fprintf (file, _(" binary ident : 0x%08x\n"), (unsigned)bfd_getl32 (p + 1)); else fprintf (file, _(" ascii ident : %.*s\n"), p[0], p + 1); } break; case EGSD__C_SYMG: { struct vms_egst *egst = (struct vms_egst *)e; unsigned int flags = bfd_getl16 (egst->header.flags); fprintf (file, _("SYMG - Universal symbol definition\n")); fprintf (file, _(" flags: 0x%04x"), flags); exav_bfd_print_egsy_flags (flags, file); fputc ('\n', file); fprintf (file, _(" symbol vector offset: 0x%08x\n"), (unsigned)bfd_getl32 (egst->value)); fprintf (file, _(" entry point: 0x%08x\n"), (unsigned)bfd_getl32 (egst->lp_1)); fprintf (file, _(" proc descr : 0x%08x\n"), (unsigned)bfd_getl32 (egst->lp_2)); fprintf (file, _(" psect index: %u\n"), (unsigned)bfd_getl32 (egst->psindx)); fprintf (file, _(" name : %.*s\n"), egst->namlng, egst->name); } break; case EGSD__C_SYMV: { struct vms_esdfv *esdfv = (struct vms_esdfv *)e; unsigned int flags = bfd_getl16 (esdfv->flags); fprintf (file, _("SYMV - Vectored symbol definition\n")); fprintf (file, _(" flags: 0x%04x"), flags); exav_bfd_print_egsy_flags (flags, file); fputc ('\n', file); fprintf (file, _(" vector : 0x%08x\n"), (unsigned)bfd_getl32 (esdfv->vector)); fprintf (file, _(" psect offset: %u\n"), (unsigned)bfd_getl32 (esdfv->value)); fprintf (file, _(" psect index : %u\n"), (unsigned)bfd_getl32 (esdfv->psindx)); fprintf (file, _(" name : %.*s\n"), esdfv->namlng, esdfv->name); } break; case EGSD__C_SYMM: { struct vms_esdfm *esdfm = (struct vms_esdfm *)e; unsigned int flags = bfd_getl16 (esdfm->flags); fprintf (file, _("SYMM - Global symbol definition with version\n")); fprintf (file, _(" flags: 0x%04x"), flags); exav_bfd_print_egsy_flags (flags, file); fputc ('\n', file); fprintf (file, _(" version mask: 0x%08x\n"), (unsigned)bfd_getl32 (esdfm->version_mask)); fprintf (file, _(" psect offset: %u\n"), (unsigned)bfd_getl32 (esdfm->value)); fprintf (file, _(" psect index : %u\n"), (unsigned)bfd_getl32 (esdfm->psindx)); fprintf (file, _(" name : %.*s\n"), esdfm->namlng, esdfm->name); } break; default: fprintf (file, _("unhandled egsd entry type %u\n"), type); break; } off += len; } } static void evax_bfd_print_hex (FILE *file, const char *pfx, const unsigned char *buf, unsigned int len) { unsigned int i; unsigned int n; n = 0; for (i = 0; i < len; i++) { if (n == 0) fputs (pfx, file); fprintf (file, " %02x", buf[i]); n++; if (n == 16) { n = 0; fputc ('\n', file); } } if (n != 0) fputc ('\n', file); } static void evax_bfd_print_etir_stc_ir (FILE *file, const unsigned char *buf, int is_ps) { /* xgettext:c-format */ fprintf (file, _(" linkage index: %u, replacement insn: 0x%08x\n"), (unsigned)bfd_getl32 (buf), (unsigned)bfd_getl32 (buf + 16)); /* xgettext:c-format */ fprintf (file, _(" psect idx 1: %u, offset 1: 0x%08x %08x\n"), (unsigned)bfd_getl32 (buf + 4), (unsigned)bfd_getl32 (buf + 12), (unsigned)bfd_getl32 (buf + 8)); /* xgettext:c-format */ fprintf (file, _(" psect idx 2: %u, offset 2: 0x%08x %08x\n"), (unsigned)bfd_getl32 (buf + 20), (unsigned)bfd_getl32 (buf + 28), (unsigned)bfd_getl32 (buf + 24)); if (is_ps) /* xgettext:c-format */ fprintf (file, _(" psect idx 3: %u, offset 3: 0x%08x %08x\n"), (unsigned)bfd_getl32 (buf + 32), (unsigned)bfd_getl32 (buf + 40), (unsigned)bfd_getl32 (buf + 36)); else fprintf (file, _(" global name: %.*s\n"), buf[32], buf + 33); } static void evax_bfd_print_etir (FILE *file, const char *name, unsigned char *rec, unsigned int rec_len) { unsigned int off = sizeof (struct vms_egsd); unsigned int sec_len = 0; /* xgettext:c-format */ fprintf (file, _(" %s (len=%u+%u):\n"), name, (unsigned)(rec_len - sizeof (struct vms_eobjrec)), (unsigned)sizeof (struct vms_eobjrec)); for (off = sizeof (struct vms_eobjrec); off < rec_len; ) { struct vms_etir *etir = (struct vms_etir *)(rec + off); unsigned char *buf; unsigned int type; unsigned int size; type = bfd_getl16 (etir->rectyp); size = bfd_getl16 (etir->size); buf = rec + off + sizeof (struct vms_etir); if (off + size > rec_len || off + size < off) { fprintf (file, _(" Error: length larger than remaining space in record\n")); return; } /* xgettext:c-format */ fprintf (file, _(" (type: %3u, size: 4+%3u): "), type, size - 4); switch (type) { case ETIR__C_STA_GBL: fprintf (file, _("STA_GBL (stack global) %.*s\n"), buf[0], buf + 1); break; case ETIR__C_STA_LW: fprintf (file, _("STA_LW (stack longword) 0x%08x\n"), (unsigned)bfd_getl32 (buf)); break; case ETIR__C_STA_QW: fprintf (file, _("STA_QW (stack quadword) 0x%08x %08x\n"), (unsigned)bfd_getl32 (buf + 4), (unsigned)bfd_getl32 (buf + 0)); break; case ETIR__C_STA_PQ: fprintf (file, _("STA_PQ (stack psect base + offset)\n")); /* xgettext:c-format */ fprintf (file, _(" psect: %u, offset: 0x%08x %08x\n"), (unsigned)bfd_getl32 (buf + 0), (unsigned)bfd_getl32 (buf + 8), (unsigned)bfd_getl32 (buf + 4)); break; case ETIR__C_STA_LI: fprintf (file, _("STA_LI (stack literal)\n")); break; case ETIR__C_STA_MOD: fprintf (file, _("STA_MOD (stack module)\n")); break; case ETIR__C_STA_CKARG: fprintf (file, _("STA_CKARG (compare procedure argument)\n")); break; case ETIR__C_STO_B: fprintf (file, _("STO_B (store byte)\n")); break; case ETIR__C_STO_W: fprintf (file, _("STO_W (store word)\n")); break; case ETIR__C_STO_LW: fprintf (file, _("STO_LW (store longword)\n")); break; case ETIR__C_STO_QW: fprintf (file, _("STO_QW (store quadword)\n")); break; case ETIR__C_STO_IMMR: { unsigned int len = bfd_getl32 (buf); fprintf (file, _("STO_IMMR (store immediate repeat) %u bytes\n"), len); evax_bfd_print_hex (file, " ", buf + 4, len); sec_len += len; } break; case ETIR__C_STO_GBL: fprintf (file, _("STO_GBL (store global) %.*s\n"), buf[0], buf + 1); break; case ETIR__C_STO_CA: fprintf (file, _("STO_CA (store code address) %.*s\n"), buf[0], buf + 1); break; case ETIR__C_STO_RB: fprintf (file, _("STO_RB (store relative branch)\n")); break; case ETIR__C_STO_AB: fprintf (file, _("STO_AB (store absolute branch)\n")); break; case ETIR__C_STO_OFF: fprintf (file, _("STO_OFF (store offset to psect)\n")); break; case ETIR__C_STO_IMM: { unsigned int len = bfd_getl32 (buf); fprintf (file, _("STO_IMM (store immediate) %u bytes\n"), len); evax_bfd_print_hex (file, " ", buf + 4, len); sec_len += len; } break; case ETIR__C_STO_GBL_LW: fprintf (file, _("STO_GBL_LW (store global longword) %.*s\n"), buf[0], buf + 1); break; case ETIR__C_STO_LP_PSB: fprintf (file, _("STO_OFF (store LP with procedure signature)\n")); break; case ETIR__C_STO_HINT_GBL: fprintf (file, _("STO_BR_GBL (store branch global) *todo*\n")); break; case ETIR__C_STO_HINT_PS: fprintf (file, _("STO_BR_PS (store branch psect + offset) *todo*\n")); break; case ETIR__C_OPR_NOP: fprintf (file, _("OPR_NOP (no-operation)\n")); break; case ETIR__C_OPR_ADD: fprintf (file, _("OPR_ADD (add)\n")); break; case ETIR__C_OPR_SUB: fprintf (file, _("OPR_SUB (subtract)\n")); break; case ETIR__C_OPR_MUL: fprintf (file, _("OPR_MUL (multiply)\n")); break; case ETIR__C_OPR_DIV: fprintf (file, _("OPR_DIV (divide)\n")); break; case ETIR__C_OPR_AND: fprintf (file, _("OPR_AND (logical and)\n")); break; case ETIR__C_OPR_IOR: fprintf (file, _("OPR_IOR (logical inclusive or)\n")); break; case ETIR__C_OPR_EOR: fprintf (file, _("OPR_EOR (logical exclusive or)\n")); break; case ETIR__C_OPR_NEG: fprintf (file, _("OPR_NEG (negate)\n")); break; case ETIR__C_OPR_COM: fprintf (file, _("OPR_COM (complement)\n")); break; case ETIR__C_OPR_INSV: fprintf (file, _("OPR_INSV (insert field)\n")); break; case ETIR__C_OPR_ASH: fprintf (file, _("OPR_ASH (arithmetic shift)\n")); break; case ETIR__C_OPR_USH: fprintf (file, _("OPR_USH (unsigned shift)\n")); break; case ETIR__C_OPR_ROT: fprintf (file, _("OPR_ROT (rotate)\n")); break; case ETIR__C_OPR_SEL: fprintf (file, _("OPR_SEL (select)\n")); break; case ETIR__C_OPR_REDEF: fprintf (file, _("OPR_REDEF (redefine symbol to curr location)\n")); break; case ETIR__C_OPR_DFLIT: fprintf (file, _("OPR_REDEF (define a literal)\n")); break; case ETIR__C_STC_LP: fprintf (file, _("STC_LP (store cond linkage pair)\n")); break; case ETIR__C_STC_LP_PSB: fprintf (file, _("STC_LP_PSB (store cond linkage pair + signature)\n")); /* xgettext:c-format */ fprintf (file, _(" linkage index: %u, procedure: %.*s\n"), (unsigned)bfd_getl32 (buf), buf[4], buf + 5); buf += 4 + 1 + buf[4]; fprintf (file, _(" signature: %.*s\n"), buf[0], buf + 1); break; case ETIR__C_STC_GBL: fprintf (file, _("STC_GBL (store cond global)\n")); /* xgettext:c-format */ fprintf (file, _(" linkage index: %u, global: %.*s\n"), (unsigned)bfd_getl32 (buf), buf[4], buf + 5); break; case ETIR__C_STC_GCA: fprintf (file, _("STC_GCA (store cond code address)\n")); /* xgettext:c-format */ fprintf (file, _(" linkage index: %u, procedure name: %.*s\n"), (unsigned)bfd_getl32 (buf), buf[4], buf + 5); break; case ETIR__C_STC_PS: fprintf (file, _("STC_PS (store cond psect + offset)\n")); fprintf (file, /* xgettext:c-format */ _(" linkage index: %u, psect: %u, offset: 0x%08x %08x\n"), (unsigned)bfd_getl32 (buf), (unsigned)bfd_getl32 (buf + 4), (unsigned)bfd_getl32 (buf + 12), (unsigned)bfd_getl32 (buf + 8)); break; case ETIR__C_STC_NOP_GBL: fprintf (file, _("STC_NOP_GBL (store cond NOP at global addr)\n")); evax_bfd_print_etir_stc_ir (file, buf, 0); break; case ETIR__C_STC_NOP_PS: fprintf (file, _("STC_NOP_PS (store cond NOP at psect + offset)\n")); evax_bfd_print_etir_stc_ir (file, buf, 1); break; case ETIR__C_STC_BSR_GBL: fprintf (file, _("STC_BSR_GBL (store cond BSR at global addr)\n")); evax_bfd_print_etir_stc_ir (file, buf, 0); break; case ETIR__C_STC_BSR_PS: fprintf (file, _("STC_BSR_PS (store cond BSR at psect + offset)\n")); evax_bfd_print_etir_stc_ir (file, buf, 1); break; case ETIR__C_STC_LDA_GBL: fprintf (file, _("STC_LDA_GBL (store cond LDA at global addr)\n")); evax_bfd_print_etir_stc_ir (file, buf, 0); break; case ETIR__C_STC_LDA_PS: fprintf (file, _("STC_LDA_PS (store cond LDA at psect + offset)\n")); evax_bfd_print_etir_stc_ir (file, buf, 1); break; case ETIR__C_STC_BOH_GBL: fprintf (file, _("STC_BOH_GBL (store cond BOH at global addr)\n")); evax_bfd_print_etir_stc_ir (file, buf, 0); break; case ETIR__C_STC_BOH_PS: fprintf (file, _("STC_BOH_PS (store cond BOH at psect + offset)\n")); evax_bfd_print_etir_stc_ir (file, buf, 1); break; case ETIR__C_STC_NBH_GBL: fprintf (file, _("STC_NBH_GBL (store cond or hint at global addr)\n")); break; case ETIR__C_STC_NBH_PS: fprintf (file, _("STC_NBH_PS (store cond or hint at psect + offset)\n")); break; case ETIR__C_CTL_SETRB: fprintf (file, _("CTL_SETRB (set relocation base)\n")); sec_len += 4; break; case ETIR__C_CTL_AUGRB: { unsigned int val = bfd_getl32 (buf); fprintf (file, _("CTL_AUGRB (augment relocation base) %u\n"), val); } break; case ETIR__C_CTL_DFLOC: fprintf (file, _("CTL_DFLOC (define location)\n")); break; case ETIR__C_CTL_STLOC: fprintf (file, _("CTL_STLOC (set location)\n")); break; case ETIR__C_CTL_STKDL: fprintf (file, _("CTL_STKDL (stack defined location)\n")); break; default: fprintf (file, _("*unhandled*\n")); break; } off += size; } } static void evax_bfd_print_eobj (struct bfd *abfd, FILE *file) { bfd_boolean is_first = TRUE; bfd_boolean has_records = FALSE; while (1) { unsigned int rec_len; unsigned int pad_len; unsigned char *rec; unsigned int hdr_size; unsigned int type; if (is_first) { unsigned char buf[6]; is_first = FALSE; /* Read 6 bytes. */ if (bfd_bread (buf, sizeof (buf), abfd) != sizeof (buf)) { fprintf (file, _("cannot read GST record length\n")); return; } rec_len = bfd_getl16 (buf + 0); if (rec_len == bfd_getl16 (buf + 4) && bfd_getl16 (buf + 2) == EOBJ__C_EMH) { /* The format is raw: record-size, type, record-size. */ has_records = TRUE; pad_len = (rec_len + 1) & ~1U; hdr_size = 4; } else if (rec_len == EOBJ__C_EMH) { has_records = FALSE; pad_len = bfd_getl16 (buf + 2); hdr_size = 6; } else { /* Ill-formed. */ fprintf (file, _("cannot find EMH in first GST record\n")); return; } rec = bfd_malloc (pad_len); memcpy (rec, buf + sizeof (buf) - hdr_size, hdr_size); } else { unsigned int rec_len2 = 0; unsigned char hdr[4]; if (has_records) { unsigned char buf_len[2]; if (bfd_bread (buf_len, sizeof (buf_len), abfd) != sizeof (buf_len)) { fprintf (file, _("cannot read GST record length\n")); return; } rec_len2 = (unsigned)bfd_getl16 (buf_len); } if (bfd_bread (hdr, sizeof (hdr), abfd) != sizeof (hdr)) { fprintf (file, _("cannot read GST record header\n")); return; } rec_len = (unsigned)bfd_getl16 (hdr + 2); if (has_records) pad_len = (rec_len + 1) & ~1U; else pad_len = rec_len; rec = bfd_malloc (pad_len); memcpy (rec, hdr, sizeof (hdr)); hdr_size = sizeof (hdr); if (has_records && rec_len2 != rec_len) { fprintf (file, _(" corrupted GST\n")); break; } } if (bfd_bread (rec + hdr_size, pad_len - hdr_size, abfd) != pad_len - hdr_size) { fprintf (file, _("cannot read GST record\n")); return; } type = (unsigned)bfd_getl16 (rec); switch (type) { case EOBJ__C_EMH: evax_bfd_print_emh (file, rec, rec_len); break; case EOBJ__C_EGSD: evax_bfd_print_egsd (file, rec, rec_len); break; case EOBJ__C_EEOM: evax_bfd_print_eeom (file, rec, rec_len); free (rec); return; break; case EOBJ__C_ETIR: evax_bfd_print_etir (file, "ETIR", rec, rec_len); break; case EOBJ__C_EDBG: evax_bfd_print_etir (file, "EDBG", rec, rec_len); break; case EOBJ__C_ETBT: evax_bfd_print_etir (file, "ETBT", rec, rec_len); break; default: fprintf (file, _(" unhandled EOBJ record type %u\n"), type); break; } free (rec); } } static void evax_bfd_print_relocation_records (FILE *file, const unsigned char *rel, unsigned int stride) { while (1) { unsigned int base; unsigned int count; unsigned int j; count = bfd_getl32 (rel + 0); if (count == 0) break; base = bfd_getl32 (rel + 4); /* xgettext:c-format */ fprintf (file, _(" bitcount: %u, base addr: 0x%08x\n"), count, base); rel += 8; for (j = 0; count > 0; j += 4, count -= 32) { unsigned int k; unsigned int n = 0; unsigned int val; val = bfd_getl32 (rel); rel += 4; /* xgettext:c-format */ fprintf (file, _(" bitmap: 0x%08x (count: %u):\n"), val, count); for (k = 0; k < 32; k++) if (val & (1 << k)) { if (n == 0) fputs (" ", file); fprintf (file, _(" %08x"), base + (j * 8 + k) * stride); n++; if (n == 8) { fputs ("\n", file); n = 0; } } if (n) fputs ("\n", file); } } } static void evax_bfd_print_address_fixups (FILE *file, const unsigned char *rel) { while (1) { unsigned int j; unsigned int count; count = bfd_getl32 (rel + 0); if (count == 0) return; /* xgettext:c-format */ fprintf (file, _(" image %u (%u entries)\n"), (unsigned)bfd_getl32 (rel + 4), count); rel += 8; for (j = 0; j < count; j++) { /* xgettext:c-format */ fprintf (file, _(" offset: 0x%08x, val: 0x%08x\n"), (unsigned)bfd_getl32 (rel + 0), (unsigned)bfd_getl32 (rel + 4)); rel += 8; } } } static void evax_bfd_print_reference_fixups (FILE *file, const unsigned char *rel) { unsigned int count; while (1) { unsigned int j; unsigned int n = 0; count = bfd_getl32 (rel + 0); if (count == 0) break; /* xgettext:c-format */ fprintf (file, _(" image %u (%u entries), offsets:\n"), (unsigned)bfd_getl32 (rel + 4), count); rel += 8; for (j = 0; j < count; j++) { if (n == 0) fputs (" ", file); fprintf (file, _(" 0x%08x"), (unsigned)bfd_getl32 (rel)); n++; if (n == 7) { fputs ("\n", file); n = 0; } rel += 4; } if (n) fputs ("\n", file); } } static void evax_bfd_print_indent (int indent, FILE *file) { for (; indent; indent--) fputc (' ', file); } static const char * evax_bfd_get_dsc_name (unsigned int v) { switch (v) { case DSC__K_DTYPE_Z: return "Z (Unspecified)"; case DSC__K_DTYPE_V: return "V (Bit)"; case DSC__K_DTYPE_BU: return "BU (Byte logical)"; case DSC__K_DTYPE_WU: return "WU (Word logical)"; case DSC__K_DTYPE_LU: return "LU (Longword logical)"; case DSC__K_DTYPE_QU: return "QU (Quadword logical)"; case DSC__K_DTYPE_B: return "B (Byte integer)"; case DSC__K_DTYPE_W: return "W (Word integer)"; case DSC__K_DTYPE_L: return "L (Longword integer)"; case DSC__K_DTYPE_Q: return "Q (Quadword integer)"; case DSC__K_DTYPE_F: return "F (Single-precision floating)"; case DSC__K_DTYPE_D: return "D (Double-precision floating)"; case DSC__K_DTYPE_FC: return "FC (Complex)"; case DSC__K_DTYPE_DC: return "DC (Double-precision Complex)"; case DSC__K_DTYPE_T: return "T (ASCII text string)"; case DSC__K_DTYPE_NU: return "NU (Numeric string, unsigned)"; case DSC__K_DTYPE_NL: return "NL (Numeric string, left separate sign)"; case DSC__K_DTYPE_NLO: return "NLO (Numeric string, left overpunched sign)"; case DSC__K_DTYPE_NR: return "NR (Numeric string, right separate sign)"; case DSC__K_DTYPE_NRO: return "NRO (Numeric string, right overpunched sig)"; case DSC__K_DTYPE_NZ: return "NZ (Numeric string, zoned sign)"; case DSC__K_DTYPE_P: return "P (Packed decimal string)"; case DSC__K_DTYPE_ZI: return "ZI (Sequence of instructions)"; case DSC__K_DTYPE_ZEM: return "ZEM (Procedure entry mask)"; case DSC__K_DTYPE_DSC: return "DSC (Descriptor, used for arrays of dyn strings)"; case DSC__K_DTYPE_OU: return "OU (Octaword logical)"; case DSC__K_DTYPE_O: return "O (Octaword integer)"; case DSC__K_DTYPE_G: return "G (Double precision G floating, 64 bit)"; case DSC__K_DTYPE_H: return "H (Quadruple precision floating, 128 bit)"; case DSC__K_DTYPE_GC: return "GC (Double precision complex, G floating)"; case DSC__K_DTYPE_HC: return "HC (Quadruple precision complex, H floating)"; case DSC__K_DTYPE_CIT: return "CIT (COBOL intermediate temporary)"; case DSC__K_DTYPE_BPV: return "BPV (Bound Procedure Value)"; case DSC__K_DTYPE_BLV: return "BLV (Bound Label Value)"; case DSC__K_DTYPE_VU: return "VU (Bit Unaligned)"; case DSC__K_DTYPE_ADT: return "ADT (Absolute Date-Time)"; case DSC__K_DTYPE_VT: return "VT (Varying Text)"; case DSC__K_DTYPE_T2: return "T2 (16-bit char)"; case DSC__K_DTYPE_VT2: return "VT2 (16-bit varying char)"; default: return "?? (unknown)"; } } static void evax_bfd_print_desc (const unsigned char *buf, int indent, FILE *file) { unsigned char bclass = buf[3]; unsigned char dtype = buf[2]; unsigned int len = (unsigned)bfd_getl16 (buf); unsigned int pointer = (unsigned)bfd_getl32 (buf + 4); evax_bfd_print_indent (indent, file); if (len == 1 && pointer == 0xffffffffUL) { /* 64 bits. */ fprintf (file, _("64 bits *unhandled*\n")); } else { /* xgettext:c-format */ fprintf (file, _("class: %u, dtype: %u, length: %u, pointer: 0x%08x\n"), bclass, dtype, len, pointer); switch (bclass) { case DSC__K_CLASS_NCA: { const struct vms_dsc_nca *dsc = (const void *)buf; unsigned int i; const unsigned char *b; evax_bfd_print_indent (indent, file); fprintf (file, _("non-contiguous array of %s\n"), evax_bfd_get_dsc_name (dsc->dtype)); evax_bfd_print_indent (indent + 1, file); fprintf (file, /* xgettext:c-format */ _("dimct: %u, aflags: 0x%02x, digits: %u, scale: %u\n"), dsc->dimct, dsc->aflags, dsc->digits, dsc->scale); evax_bfd_print_indent (indent + 1, file); fprintf (file, /* xgettext:c-format */ _("arsize: %u, a0: 0x%08x\n"), (unsigned)bfd_getl32 (dsc->arsize), (unsigned)bfd_getl32 (dsc->a0)); evax_bfd_print_indent (indent + 1, file); fprintf (file, _("Strides:\n")); b = buf + sizeof (*dsc); for (i = 0; i < dsc->dimct; i++) { evax_bfd_print_indent (indent + 2, file); fprintf (file, "[%u]: %u\n", i + 1, (unsigned)bfd_getl32 (b)); b += 4; } evax_bfd_print_indent (indent + 1, file); fprintf (file, _("Bounds:\n")); b = buf + sizeof (*dsc); for (i = 0; i < dsc->dimct; i++) { evax_bfd_print_indent (indent + 2, file); /* xgettext:c-format */ fprintf (file, _("[%u]: Lower: %u, upper: %u\n"), i + 1, (unsigned)bfd_getl32 (b + 0), (unsigned)bfd_getl32 (b + 4)); b += 8; } } break; case DSC__K_CLASS_UBS: { const struct vms_dsc_ubs *ubs = (const void *)buf; evax_bfd_print_indent (indent, file); fprintf (file, _("unaligned bit-string of %s\n"), evax_bfd_get_dsc_name (ubs->dtype)); evax_bfd_print_indent (indent + 1, file); fprintf (file, /* xgettext:c-format */ _("base: %u, pos: %u\n"), (unsigned)bfd_getl32 (ubs->base), (unsigned)bfd_getl32 (ubs->pos)); } break; default: fprintf (file, _("*unhandled*\n")); break; } } } static unsigned int evax_bfd_print_valspec (const unsigned char *buf, int indent, FILE *file) { unsigned int vflags = buf[0]; unsigned int value = (unsigned)bfd_getl32 (buf + 1); unsigned int len = 5; evax_bfd_print_indent (indent, file); /* xgettext:c-format */ fprintf (file, _("vflags: 0x%02x, value: 0x%08x "), vflags, value); buf += 5; switch (vflags) { case DST__K_VFLAGS_NOVAL: fprintf (file, _("(no value)\n")); break; case DST__K_VFLAGS_NOTACTIVE: fprintf (file, _("(not active)\n")); break; case DST__K_VFLAGS_UNALLOC: fprintf (file, _("(not allocated)\n")); break; case DST__K_VFLAGS_DSC: fprintf (file, _("(descriptor)\n")); evax_bfd_print_desc (buf + value, indent + 1, file); break; case DST__K_VFLAGS_TVS: fprintf (file, _("(trailing value)\n")); break; case DST__K_VS_FOLLOWS: fprintf (file, _("(value spec follows)\n")); break; case DST__K_VFLAGS_BITOFFS: fprintf (file, _("(at bit offset %u)\n"), value); break; default: /* xgettext:c-format */ fprintf (file, _("(reg: %u, disp: %u, indir: %u, kind: "), (vflags & DST__K_REGNUM_MASK) >> DST__K_REGNUM_SHIFT, vflags & DST__K_DISP ? 1 : 0, vflags & DST__K_INDIR ? 1 : 0); switch (vflags & DST__K_VALKIND_MASK) { case DST__K_VALKIND_LITERAL: fputs (_("literal"), file); break; case DST__K_VALKIND_ADDR: fputs (_("address"), file); break; case DST__K_VALKIND_DESC: fputs (_("desc"), file); break; case DST__K_VALKIND_REG: fputs (_("reg"), file); break; } fputs (")\n", file); break; } return len; } static void evax_bfd_print_typspec (const unsigned char *buf, int indent, FILE *file) { unsigned char kind = buf[2]; unsigned int len = (unsigned)bfd_getl16 (buf); evax_bfd_print_indent (indent, file); /* xgettext:c-format */ fprintf (file, _("len: %2u, kind: %2u "), len, kind); buf += 3; switch (kind) { case DST__K_TS_ATOM: /* xgettext:c-format */ fprintf (file, _("atomic, type=0x%02x %s\n"), buf[0], evax_bfd_get_dsc_name (buf[0])); break; case DST__K_TS_IND: fprintf (file, _("indirect, defined at 0x%08x\n"), (unsigned)bfd_getl32 (buf)); break; case DST__K_TS_TPTR: fprintf (file, _("typed pointer\n")); evax_bfd_print_typspec (buf, indent + 1, file); break; case DST__K_TS_PTR: fprintf (file, _("pointer\n")); break; case DST__K_TS_ARRAY: { const unsigned char *vs; unsigned int vec_len; unsigned int i; fprintf (file, _("array, dim: %u, bitmap: "), buf[0]); vec_len = (buf[0] + 1 + 7) / 8; for (i = 0; i < vec_len; i++) fprintf (file, " %02x", buf[i + 1]); fputc ('\n', file); vs = buf + 1 + vec_len; evax_bfd_print_indent (indent, file); fprintf (file, _("array descriptor:\n")); vs += evax_bfd_print_valspec (vs, indent + 1, file); for (i = 0; i < buf[0] + 1U; i++) if (buf[1 + i / 8] & (1 << (i % 8))) { evax_bfd_print_indent (indent, file); if (i == 0) fprintf (file, _("type spec for element:\n")); else fprintf (file, _("type spec for subscript %u:\n"), i); evax_bfd_print_typspec (vs, indent + 1, file); vs += bfd_getl16 (vs); } } break; default: fprintf (file, _("*unhandled*\n")); } } static void evax_bfd_print_dst (struct bfd *abfd, unsigned int dst_size, FILE *file) { unsigned int off = 0; unsigned int pc = 0; unsigned int line = 0; fprintf (file, _("Debug symbol table:\n")); while (dst_size > 0) { struct vms_dst_header dsth; unsigned int len; unsigned int type; unsigned char *buf; if (bfd_bread (&dsth, sizeof (dsth), abfd) != sizeof (dsth)) { fprintf (file, _("cannot read DST header\n")); return; } len = bfd_getl16 (dsth.length); type = bfd_getl16 (dsth.type); /* xgettext:c-format */ fprintf (file, _(" type: %3u, len: %3u (at 0x%08x): "), type, len, off); if (len == 0) { fputc ('\n', file); break; } len++; dst_size -= len; off += len; len -= sizeof (dsth); buf = bfd_malloc (len); if (bfd_bread (buf, len, abfd) != len) { fprintf (file, _("cannot read DST symbol\n")); return; } switch (type) { case DSC__K_DTYPE_V: case DSC__K_DTYPE_BU: case DSC__K_DTYPE_WU: case DSC__K_DTYPE_LU: case DSC__K_DTYPE_QU: case DSC__K_DTYPE_B: case DSC__K_DTYPE_W: case DSC__K_DTYPE_L: case DSC__K_DTYPE_Q: case DSC__K_DTYPE_F: case DSC__K_DTYPE_D: case DSC__K_DTYPE_FC: case DSC__K_DTYPE_DC: case DSC__K_DTYPE_T: case DSC__K_DTYPE_NU: case DSC__K_DTYPE_NL: case DSC__K_DTYPE_NLO: case DSC__K_DTYPE_NR: case DSC__K_DTYPE_NRO: case DSC__K_DTYPE_NZ: case DSC__K_DTYPE_P: case DSC__K_DTYPE_ZI: case DSC__K_DTYPE_ZEM: case DSC__K_DTYPE_DSC: case DSC__K_DTYPE_OU: case DSC__K_DTYPE_O: case DSC__K_DTYPE_G: case DSC__K_DTYPE_H: case DSC__K_DTYPE_GC: case DSC__K_DTYPE_HC: case DSC__K_DTYPE_CIT: case DSC__K_DTYPE_BPV: case DSC__K_DTYPE_BLV: case DSC__K_DTYPE_VU: case DSC__K_DTYPE_ADT: case DSC__K_DTYPE_VT: case DSC__K_DTYPE_T2: case DSC__K_DTYPE_VT2: fprintf (file, _("standard data: %s\n"), evax_bfd_get_dsc_name (type)); evax_bfd_print_valspec (buf, 4, file); fprintf (file, _(" name: %.*s\n"), buf[5], buf + 6); break; case DST__K_MODBEG: { struct vms_dst_modbeg *dst = (void *)buf; const char *name = (const char *)buf + sizeof (*dst); fprintf (file, _("modbeg\n")); /* xgettext:c-format */ fprintf (file, _(" flags: %d, language: %u, " "major: %u, minor: %u\n"), dst->flags, (unsigned)bfd_getl32 (dst->language), (unsigned)bfd_getl16 (dst->major), (unsigned)bfd_getl16 (dst->minor)); fprintf (file, _(" module name: %.*s\n"), name[0], name + 1); name += name[0] + 1; fprintf (file, _(" compiler : %.*s\n"), name[0], name + 1); } break; case DST__K_MODEND: fprintf (file, _("modend\n")); break; case DST__K_RTNBEG: { struct vms_dst_rtnbeg *dst = (void *)buf; const char *name = (const char *)buf + sizeof (*dst); fputs (_("rtnbeg\n"), file); /* xgettext:c-format */ fprintf (file, _(" flags: %u, address: 0x%08x, " "pd-address: 0x%08x\n"), dst->flags, (unsigned)bfd_getl32 (dst->address), (unsigned)bfd_getl32 (dst->pd_address)); fprintf (file, _(" routine name: %.*s\n"), name[0], name + 1); } break; case DST__K_RTNEND: { struct vms_dst_rtnend *dst = (void *)buf; fprintf (file, _("rtnend: size 0x%08x\n"), (unsigned)bfd_getl32 (dst->size)); } break; case DST__K_PROLOG: { struct vms_dst_prolog *dst = (void *)buf; fprintf (file, _("prolog: bkpt address 0x%08x\n"), (unsigned)bfd_getl32 (dst->bkpt_addr)); } break; case DST__K_EPILOG: { struct vms_dst_epilog *dst = (void *)buf; /* xgettext:c-format */ fprintf (file, _("epilog: flags: %u, count: %u\n"), dst->flags, (unsigned)bfd_getl32 (dst->count)); } break; case DST__K_BLKBEG: { struct vms_dst_blkbeg *dst = (void *)buf; const char *name = (const char *)buf + sizeof (*dst); /* xgettext:c-format */ fprintf (file, _("blkbeg: address: 0x%08x, name: %.*s\n"), (unsigned)bfd_getl32 (dst->address), name[0], name + 1); } break; case DST__K_BLKEND: { struct vms_dst_blkend *dst = (void *)buf; fprintf (file, _("blkend: size: 0x%08x\n"), (unsigned)bfd_getl32 (dst->size)); } break; case DST__K_TYPSPEC: { fprintf (file, _("typspec (len: %u)\n"), len); fprintf (file, _(" name: %.*s\n"), buf[0], buf + 1); evax_bfd_print_typspec (buf + 1 + buf[0], 5, file); } break; case DST__K_SEPTYP: { fprintf (file, _("septyp, name: %.*s\n"), buf[5], buf + 6); evax_bfd_print_valspec (buf, 4, file); } break; case DST__K_RECBEG: { struct vms_dst_recbeg *recbeg = (void *)buf; const char *name = (const char *)buf + sizeof (*recbeg); fprintf (file, _("recbeg: name: %.*s\n"), name[0], name + 1); evax_bfd_print_valspec (buf, 4, file); fprintf (file, _(" len: %u bits\n"), (unsigned)bfd_getl32 (name + 1 + name[0])); } break; case DST__K_RECEND: fprintf (file, _("recend\n")); break; case DST__K_ENUMBEG: /* xgettext:c-format */ fprintf (file, _("enumbeg, len: %u, name: %.*s\n"), buf[0], buf[1], buf + 2); break; case DST__K_ENUMELT: fprintf (file, _("enumelt, name: %.*s\n"), buf[5], buf + 6); evax_bfd_print_valspec (buf, 4, file); break; case DST__K_ENUMEND: fprintf (file, _("enumend\n")); break; case DST__K_LABEL: { struct vms_dst_label *lab = (void *)buf; fprintf (file, _("label, name: %.*s\n"), lab->name[0], lab->name + 1); fprintf (file, _(" address: 0x%08x\n"), (unsigned)bfd_getl32 (lab->value)); } break; case DST__K_DIS_RANGE: { unsigned int cnt = bfd_getl32 (buf); unsigned char *rng = buf + 4; unsigned int i; fprintf (file, _("discontiguous range (nbr: %u)\n"), cnt); for (i = 0; i < cnt; i++, rng += 8) /* xgettext:c-format */ fprintf (file, _(" address: 0x%08x, size: %u\n"), (unsigned)bfd_getl32 (rng), (unsigned)bfd_getl32 (rng + 4)); } break; case DST__K_LINE_NUM: { unsigned char *buf_orig = buf; fprintf (file, _("line num (len: %u)\n"), len); while (len > 0) { signed char cmd; unsigned char cmdlen; unsigned int val; cmd = buf[0]; cmdlen = 0; fputs (" ", file); switch (cmd) { case DST__K_DELTA_PC_W: val = bfd_getl16 (buf + 1); fprintf (file, _("delta_pc_w %u\n"), val); pc += val; line++; cmdlen = 3; break; case DST__K_INCR_LINUM: val = buf[1]; fprintf (file, _("incr_linum(b): +%u\n"), val); line += val; cmdlen = 2; break; case DST__K_INCR_LINUM_W: val = bfd_getl16 (buf + 1); fprintf (file, _("incr_linum_w: +%u\n"), val); line += val; cmdlen = 3; break; case DST__K_INCR_LINUM_L: val = bfd_getl32 (buf + 1); fprintf (file, _("incr_linum_l: +%u\n"), val); line += val; cmdlen = 5; break; case DST__K_SET_LINUM: line = bfd_getl16 (buf + 1); fprintf (file, _("set_line_num(w) %u\n"), line); cmdlen = 3; break; case DST__K_SET_LINUM_B: line = buf[1]; fprintf (file, _("set_line_num_b %u\n"), line); cmdlen = 2; break; case DST__K_SET_LINUM_L: line = bfd_getl32 (buf + 1); fprintf (file, _("set_line_num_l %u\n"), line); cmdlen = 5; break; case DST__K_SET_ABS_PC: pc = bfd_getl32 (buf + 1); fprintf (file, _("set_abs_pc: 0x%08x\n"), pc); cmdlen = 5; break; case DST__K_DELTA_PC_L: fprintf (file, _("delta_pc_l: +0x%08x\n"), (unsigned)bfd_getl32 (buf + 1)); cmdlen = 5; break; case DST__K_TERM: fprintf (file, _("term(b): 0x%02x"), buf[1]); pc += buf[1]; fprintf (file, _(" pc: 0x%08x\n"), pc); cmdlen = 2; break; case DST__K_TERM_W: val = bfd_getl16 (buf + 1); fprintf (file, _("term_w: 0x%04x"), val); pc += val; fprintf (file, _(" pc: 0x%08x\n"), pc); cmdlen = 3; break; default: if (cmd <= 0) { fprintf (file, _("delta pc +%-4d"), -cmd); line++; /* FIXME: curr increment. */ pc += -cmd; /* xgettext:c-format */ fprintf (file, _(" pc: 0x%08x line: %5u\n"), pc, line); cmdlen = 1; } else fprintf (file, _(" *unhandled* cmd %u\n"), cmd); break; } if (cmdlen == 0) break; len -= cmdlen; buf += cmdlen; } buf = buf_orig; } break; case DST__K_SOURCE: { unsigned char *buf_orig = buf; fprintf (file, _("source (len: %u)\n"), len); while (len > 0) { signed char cmd = buf[0]; unsigned char cmdlen = 0; switch (cmd) { case DST__K_SRC_DECLFILE: { struct vms_dst_src_decl_src *src = (void *)(buf + 1); const char *name; /* xgettext:c-format */ fprintf (file, _(" declfile: len: %u, flags: %u, " "fileid: %u\n"), src->length, src->flags, (unsigned)bfd_getl16 (src->fileid)); /* xgettext:c-format */ fprintf (file, _(" rms: cdt: 0x%08x %08x, " "ebk: 0x%08x, ffb: 0x%04x, " "rfo: %u\n"), (unsigned)bfd_getl32 (src->rms_cdt + 4), (unsigned)bfd_getl32 (src->rms_cdt + 0), (unsigned)bfd_getl32 (src->rms_ebk), (unsigned)bfd_getl16 (src->rms_ffb), src->rms_rfo); name = (const char *)buf + 1 + sizeof (*src); fprintf (file, _(" filename : %.*s\n"), name[0], name + 1); name += name[0] + 1; fprintf (file, _(" module name: %.*s\n"), name[0], name + 1); cmdlen = 2 + src->length; } break; case DST__K_SRC_SETFILE: fprintf (file, _(" setfile %u\n"), (unsigned)bfd_getl16 (buf + 1)); cmdlen = 3; break; case DST__K_SRC_SETREC_W: fprintf (file, _(" setrec %u\n"), (unsigned)bfd_getl16 (buf + 1)); cmdlen = 3; break; case DST__K_SRC_SETREC_L: fprintf (file, _(" setrec %u\n"), (unsigned)bfd_getl32 (buf + 1)); cmdlen = 5; break; case DST__K_SRC_SETLNUM_W: fprintf (file, _(" setlnum %u\n"), (unsigned)bfd_getl16 (buf + 1)); cmdlen = 3; break; case DST__K_SRC_SETLNUM_L: fprintf (file, _(" setlnum %u\n"), (unsigned)bfd_getl32 (buf + 1)); cmdlen = 5; break; case DST__K_SRC_DEFLINES_W: fprintf (file, _(" deflines %u\n"), (unsigned)bfd_getl16 (buf + 1)); cmdlen = 3; break; case DST__K_SRC_DEFLINES_B: fprintf (file, _(" deflines %u\n"), buf[1]); cmdlen = 2; break; case DST__K_SRC_FORMFEED: fprintf (file, _(" formfeed\n")); cmdlen = 1; break; default: fprintf (file, _(" *unhandled* cmd %u\n"), cmd); break; } if (cmdlen == 0) break; len -= cmdlen; buf += cmdlen; } buf = buf_orig; } break; default: fprintf (file, _("*unhandled* dst type %u\n"), type); break; } free (buf); } } static void evax_bfd_print_image (bfd *abfd, FILE *file) { struct vms_eihd eihd; const char *name; unsigned int val; unsigned int eiha_off; unsigned int eihi_off; unsigned int eihs_off; unsigned int eisd_off; unsigned int eihef_off = 0; unsigned int eihnp_off = 0; unsigned int dmt_vbn = 0; unsigned int dmt_size = 0; unsigned int dst_vbn = 0; unsigned int dst_size = 0; unsigned int gst_vbn = 0; unsigned int gst_size = 0; unsigned int eiaf_vbn = 0; unsigned int eiaf_size = 0; unsigned int eihvn_off; if (bfd_seek (abfd, (file_ptr) 0, SEEK_SET) || bfd_bread (&eihd, sizeof (eihd), abfd) != sizeof (eihd)) { fprintf (file, _("cannot read EIHD\n")); return; } /* xgettext:c-format */ fprintf (file, _("EIHD: (size: %u, nbr blocks: %u)\n"), (unsigned)bfd_getl32 (eihd.size), (unsigned)bfd_getl32 (eihd.hdrblkcnt)); /* xgettext:c-format */ fprintf (file, _(" majorid: %u, minorid: %u\n"), (unsigned)bfd_getl32 (eihd.majorid), (unsigned)bfd_getl32 (eihd.minorid)); val = (unsigned)bfd_getl32 (eihd.imgtype); switch (val) { case EIHD__K_EXE: name = _("executable"); break; case EIHD__K_LIM: name = _("linkable image"); break; default: name = _("unknown"); break; } /* xgettext:c-format */ fprintf (file, _(" image type: %u (%s)"), val, name); val = (unsigned)bfd_getl32 (eihd.subtype); switch (val) { case EIHD__C_NATIVE: name = _("native"); break; case EIHD__C_CLI: name = _("CLI"); break; default: name = _("unknown"); break; } /* xgettext:c-format */ fprintf (file, _(", subtype: %u (%s)\n"), val, name); eisd_off = bfd_getl32 (eihd.isdoff); eiha_off = bfd_getl32 (eihd.activoff); eihi_off = bfd_getl32 (eihd.imgidoff); eihs_off = bfd_getl32 (eihd.symdbgoff); /* xgettext:c-format */ fprintf (file, _(" offsets: isd: %u, activ: %u, symdbg: %u, " "imgid: %u, patch: %u\n"), eisd_off, eiha_off, eihs_off, eihi_off, (unsigned)bfd_getl32 (eihd.patchoff)); fprintf (file, _(" fixup info rva: ")); bfd_fprintf_vma (abfd, file, bfd_getl64 (eihd.iafva)); fprintf (file, _(", symbol vector rva: ")); bfd_fprintf_vma (abfd, file, bfd_getl64 (eihd.symvva)); eihvn_off = bfd_getl32 (eihd.version_array_off); fprintf (file, _("\n" " version array off: %u\n"), eihvn_off); fprintf (file, /* xgettext:c-format */ _(" img I/O count: %u, nbr channels: %u, req pri: %08x%08x\n"), (unsigned)bfd_getl32 (eihd.imgiocnt), (unsigned)bfd_getl32 (eihd.iochancnt), (unsigned)bfd_getl32 (eihd.privreqs + 4), (unsigned)bfd_getl32 (eihd.privreqs + 0)); val = (unsigned)bfd_getl32 (eihd.lnkflags); fprintf (file, _(" linker flags: %08x:"), val); if (val & EIHD__M_LNKDEBUG) fprintf (file, " LNKDEBUG"); if (val & EIHD__M_LNKNOTFR) fprintf (file, " LNKNOTFR"); if (val & EIHD__M_NOP0BUFS) fprintf (file, " NOP0BUFS"); if (val & EIHD__M_PICIMG) fprintf (file, " PICIMG"); if (val & EIHD__M_P0IMAGE) fprintf (file, " P0IMAGE"); if (val & EIHD__M_DBGDMT) fprintf (file, " DBGDMT"); if (val & EIHD__M_INISHR) fprintf (file, " INISHR"); if (val & EIHD__M_XLATED) fprintf (file, " XLATED"); if (val & EIHD__M_BIND_CODE_SEC) fprintf (file, " BIND_CODE_SEC"); if (val & EIHD__M_BIND_DATA_SEC) fprintf (file, " BIND_DATA_SEC"); if (val & EIHD__M_MKTHREADS) fprintf (file, " MKTHREADS"); if (val & EIHD__M_UPCALLS) fprintf (file, " UPCALLS"); if (val & EIHD__M_OMV_READY) fprintf (file, " OMV_READY"); if (val & EIHD__M_EXT_BIND_SECT) fprintf (file, " EXT_BIND_SECT"); fprintf (file, "\n"); /* xgettext:c-format */ fprintf (file, _(" ident: 0x%08x, sysver: 0x%08x, " "match ctrl: %u, symvect_size: %u\n"), (unsigned)bfd_getl32 (eihd.ident), (unsigned)bfd_getl32 (eihd.sysver), eihd.matchctl, (unsigned)bfd_getl32 (eihd.symvect_size)); fprintf (file, _(" BPAGE: %u"), (unsigned)bfd_getl32 (eihd.virt_mem_block_size)); if (val & (EIHD__M_OMV_READY | EIHD__M_EXT_BIND_SECT)) { eihef_off = bfd_getl32 (eihd.ext_fixup_off); eihnp_off = bfd_getl32 (eihd.noopt_psect_off); /* xgettext:c-format */ fprintf (file, _(", ext fixup offset: %u, no_opt psect off: %u"), eihef_off, eihnp_off); } fprintf (file, _(", alias: %u\n"), (unsigned)bfd_getl16 (eihd.alias)); if (eihvn_off != 0) { struct vms_eihvn eihvn; unsigned int mask; unsigned int j; fprintf (file, _("system version array information:\n")); if (bfd_seek (abfd, (file_ptr) eihvn_off, SEEK_SET) || bfd_bread (&eihvn, sizeof (eihvn), abfd) != sizeof (eihvn)) { fprintf (file, _("cannot read EIHVN header\n")); return; } mask = bfd_getl32 (eihvn.subsystem_mask); for (j = 0; j < 32; j++) if (mask & (1 << j)) { struct vms_eihvn_subversion ver; if (bfd_bread (&ver, sizeof (ver), abfd) != sizeof (ver)) { fprintf (file, _("cannot read EIHVN version\n")); return; } fprintf (file, _(" %02u "), j); switch (j) { case EIHVN__BASE_IMAGE_BIT: fputs (_("BASE_IMAGE "), file); break; case EIHVN__MEMORY_MANAGEMENT_BIT: fputs (_("MEMORY_MANAGEMENT"), file); break; case EIHVN__IO_BIT: fputs (_("IO "), file); break; case EIHVN__FILES_VOLUMES_BIT: fputs (_("FILES_VOLUMES "), file); break; case EIHVN__PROCESS_SCHED_BIT: fputs (_("PROCESS_SCHED "), file); break; case EIHVN__SYSGEN_BIT: fputs (_("SYSGEN "), file); break; case EIHVN__CLUSTERS_LOCKMGR_BIT: fputs (_("CLUSTERS_LOCKMGR "), file); break; case EIHVN__LOGICAL_NAMES_BIT: fputs (_("LOGICAL_NAMES "), file); break; case EIHVN__SECURITY_BIT: fputs (_("SECURITY "), file); break; case EIHVN__IMAGE_ACTIVATOR_BIT: fputs (_("IMAGE_ACTIVATOR "), file); break; case EIHVN__NETWORKS_BIT: fputs (_("NETWORKS "), file); break; case EIHVN__COUNTERS_BIT: fputs (_("COUNTERS "), file); break; case EIHVN__STABLE_BIT: fputs (_("STABLE "), file); break; case EIHVN__MISC_BIT: fputs (_("MISC "), file); break; case EIHVN__CPU_BIT: fputs (_("CPU "), file); break; case EIHVN__VOLATILE_BIT: fputs (_("VOLATILE "), file); break; case EIHVN__SHELL_BIT: fputs (_("SHELL "), file); break; case EIHVN__POSIX_BIT: fputs (_("POSIX "), file); break; case EIHVN__MULTI_PROCESSING_BIT: fputs (_("MULTI_PROCESSING "), file); break; case EIHVN__GALAXY_BIT: fputs (_("GALAXY "), file); break; default: fputs (_("*unknown* "), file); break; } fprintf (file, ": %u.%u\n", (unsigned)bfd_getl16 (ver.major), (unsigned)bfd_getl16 (ver.minor)); } } if (eiha_off != 0) { struct vms_eiha eiha; if (bfd_seek (abfd, (file_ptr) eiha_off, SEEK_SET) || bfd_bread (&eiha, sizeof (eiha), abfd) != sizeof (eiha)) { fprintf (file, _("cannot read EIHA\n")); return; } fprintf (file, _("Image activation: (size=%u)\n"), (unsigned)bfd_getl32 (eiha.size)); /* xgettext:c-format */ fprintf (file, _(" First address : 0x%08x 0x%08x\n"), (unsigned)bfd_getl32 (eiha.tfradr1_h), (unsigned)bfd_getl32 (eiha.tfradr1)); /* xgettext:c-format */ fprintf (file, _(" Second address: 0x%08x 0x%08x\n"), (unsigned)bfd_getl32 (eiha.tfradr2_h), (unsigned)bfd_getl32 (eiha.tfradr2)); /* xgettext:c-format */ fprintf (file, _(" Third address : 0x%08x 0x%08x\n"), (unsigned)bfd_getl32 (eiha.tfradr3_h), (unsigned)bfd_getl32 (eiha.tfradr3)); /* xgettext:c-format */ fprintf (file, _(" Fourth address: 0x%08x 0x%08x\n"), (unsigned)bfd_getl32 (eiha.tfradr4_h), (unsigned)bfd_getl32 (eiha.tfradr4)); /* xgettext:c-format */ fprintf (file, _(" Shared image : 0x%08x 0x%08x\n"), (unsigned)bfd_getl32 (eiha.inishr_h), (unsigned)bfd_getl32 (eiha.inishr)); } if (eihi_off != 0) { struct vms_eihi eihi; if (bfd_seek (abfd, (file_ptr) eihi_off, SEEK_SET) || bfd_bread (&eihi, sizeof (eihi), abfd) != sizeof (eihi)) { fprintf (file, _("cannot read EIHI\n")); return; } /* xgettext:c-format */ fprintf (file, _("Image identification: (major: %u, minor: %u)\n"), (unsigned)bfd_getl32 (eihi.majorid), (unsigned)bfd_getl32 (eihi.minorid)); fprintf (file, _(" image name : %.*s\n"), eihi.imgnam[0], eihi.imgnam + 1); fprintf (file, _(" link time : %s\n"), vms_time_to_str (eihi.linktime)); fprintf (file, _(" image ident : %.*s\n"), eihi.imgid[0], eihi.imgid + 1); fprintf (file, _(" linker ident : %.*s\n"), eihi.linkid[0], eihi.linkid + 1); fprintf (file, _(" image build ident: %.*s\n"), eihi.imgbid[0], eihi.imgbid + 1); } if (eihs_off != 0) { struct vms_eihs eihs; if (bfd_seek (abfd, (file_ptr) eihs_off, SEEK_SET) || bfd_bread (&eihs, sizeof (eihs), abfd) != sizeof (eihs)) { fprintf (file, _("cannot read EIHS\n")); return; } /* xgettext:c-format */ fprintf (file, _("Image symbol & debug table: (major: %u, minor: %u)\n"), (unsigned)bfd_getl32 (eihs.majorid), (unsigned)bfd_getl32 (eihs.minorid)); dst_vbn = bfd_getl32 (eihs.dstvbn); dst_size = bfd_getl32 (eihs.dstsize); /* xgettext:c-format */ fprintf (file, _(" debug symbol table : vbn: %u, size: %u (0x%x)\n"), dst_vbn, dst_size, dst_size); gst_vbn = bfd_getl32 (eihs.gstvbn); gst_size = bfd_getl32 (eihs.gstsize); /* xgettext:c-format */ fprintf (file, _(" global symbol table: vbn: %u, records: %u\n"), gst_vbn, gst_size); dmt_vbn = bfd_getl32 (eihs.dmtvbn); dmt_size = bfd_getl32 (eihs.dmtsize); /* xgettext:c-format */ fprintf (file, _(" debug module table : vbn: %u, size: %u\n"), dmt_vbn, dmt_size); } while (eisd_off != 0) { struct vms_eisd eisd; unsigned int len; while (1) { if (bfd_seek (abfd, (file_ptr) eisd_off, SEEK_SET) || bfd_bread (&eisd, sizeof (eisd), abfd) != sizeof (eisd)) { fprintf (file, _("cannot read EISD\n")); return; } len = (unsigned)bfd_getl32 (eisd.eisdsize); if (len != (unsigned)-1) break; /* Next block. */ eisd_off = (eisd_off + VMS_BLOCK_SIZE) & ~(VMS_BLOCK_SIZE - 1); } /* xgettext:c-format */ fprintf (file, _("Image section descriptor: (major: %u, minor: %u, " "size: %u, offset: %u)\n"), (unsigned)bfd_getl32 (eisd.majorid), (unsigned)bfd_getl32 (eisd.minorid), len, eisd_off); if (len == 0) break; /* xgettext:c-format */ fprintf (file, _(" section: base: 0x%08x%08x size: 0x%08x\n"), (unsigned)bfd_getl32 (eisd.virt_addr + 4), (unsigned)bfd_getl32 (eisd.virt_addr + 0), (unsigned)bfd_getl32 (eisd.secsize)); val = (unsigned)bfd_getl32 (eisd.flags); fprintf (file, _(" flags: 0x%04x"), val); if (val & EISD__M_GBL) fprintf (file, " GBL"); if (val & EISD__M_CRF) fprintf (file, " CRF"); if (val & EISD__M_DZRO) fprintf (file, " DZRO"); if (val & EISD__M_WRT) fprintf (file, " WRT"); if (val & EISD__M_INITALCODE) fprintf (file, " INITALCODE"); if (val & EISD__M_BASED) fprintf (file, " BASED"); if (val & EISD__M_FIXUPVEC) fprintf (file, " FIXUPVEC"); if (val & EISD__M_RESIDENT) fprintf (file, " RESIDENT"); if (val & EISD__M_VECTOR) fprintf (file, " VECTOR"); if (val & EISD__M_PROTECT) fprintf (file, " PROTECT"); if (val & EISD__M_LASTCLU) fprintf (file, " LASTCLU"); if (val & EISD__M_EXE) fprintf (file, " EXE"); if (val & EISD__M_NONSHRADR) fprintf (file, " NONSHRADR"); if (val & EISD__M_QUAD_LENGTH) fprintf (file, " QUAD_LENGTH"); if (val & EISD__M_ALLOC_64BIT) fprintf (file, " ALLOC_64BIT"); fprintf (file, "\n"); if (val & EISD__M_FIXUPVEC) { eiaf_vbn = bfd_getl32 (eisd.vbn); eiaf_size = bfd_getl32 (eisd.secsize); } /* xgettext:c-format */ fprintf (file, _(" vbn: %u, pfc: %u, matchctl: %u type: %u ("), (unsigned)bfd_getl32 (eisd.vbn), eisd.pfc, eisd.matchctl, eisd.type); switch (eisd.type) { case EISD__K_NORMAL: fputs (_("NORMAL"), file); break; case EISD__K_SHRFXD: fputs (_("SHRFXD"), file); break; case EISD__K_PRVFXD: fputs (_("PRVFXD"), file); break; case EISD__K_SHRPIC: fputs (_("SHRPIC"), file); break; case EISD__K_PRVPIC: fputs (_("PRVPIC"), file); break; case EISD__K_USRSTACK: fputs (_("USRSTACK"), file); break; default: fputs (_("*unknown*"), file); break; } fputs (_(")\n"), file); if (val & EISD__M_GBL) /* xgettext:c-format */ fprintf (file, _(" ident: 0x%08x, name: %.*s\n"), (unsigned)bfd_getl32 (eisd.ident), eisd.gblnam[0], eisd.gblnam + 1); eisd_off += len; } if (dmt_vbn != 0) { if (bfd_seek (abfd, (file_ptr) (dmt_vbn - 1) * VMS_BLOCK_SIZE, SEEK_SET)) { fprintf (file, _("cannot read DMT\n")); return; } fprintf (file, _("Debug module table:\n")); while (dmt_size > 0) { struct vms_dmt_header dmth; unsigned int count; if (bfd_bread (&dmth, sizeof (dmth), abfd) != sizeof (dmth)) { fprintf (file, _("cannot read DMT header\n")); return; } count = bfd_getl16 (dmth.psect_count); fprintf (file, /* xgettext:c-format */ _(" module offset: 0x%08x, size: 0x%08x, (%u psects)\n"), (unsigned)bfd_getl32 (dmth.modbeg), (unsigned)bfd_getl32 (dmth.size), count); dmt_size -= sizeof (dmth); while (count > 0) { struct vms_dmt_psect dmtp; if (bfd_bread (&dmtp, sizeof (dmtp), abfd) != sizeof (dmtp)) { fprintf (file, _("cannot read DMT psect\n")); return; } /* xgettext:c-format */ fprintf (file, _(" psect start: 0x%08x, length: %u\n"), (unsigned)bfd_getl32 (dmtp.start), (unsigned)bfd_getl32 (dmtp.length)); count--; dmt_size -= sizeof (dmtp); } } } if (dst_vbn != 0) { if (bfd_seek (abfd, (file_ptr) (dst_vbn - 1) * VMS_BLOCK_SIZE, SEEK_SET)) { fprintf (file, _("cannot read DST\n")); return; } evax_bfd_print_dst (abfd, dst_size, file); } if (gst_vbn != 0) { if (bfd_seek (abfd, (file_ptr) (gst_vbn - 1) * VMS_BLOCK_SIZE, SEEK_SET)) { fprintf (file, _("cannot read GST\n")); return; } fprintf (file, _("Global symbol table:\n")); evax_bfd_print_eobj (abfd, file); } if (eiaf_vbn != 0) { unsigned char *buf; struct vms_eiaf *eiaf; unsigned int qrelfixoff; unsigned int lrelfixoff; unsigned int qdotadroff; unsigned int ldotadroff; unsigned int shrimgcnt; unsigned int shlstoff; unsigned int codeadroff; unsigned int lpfixoff; unsigned int chgprtoff; buf = bfd_malloc (eiaf_size); if (bfd_seek (abfd, (file_ptr) (eiaf_vbn - 1) * VMS_BLOCK_SIZE, SEEK_SET) || bfd_bread (buf, eiaf_size, abfd) != eiaf_size) { fprintf (file, _("cannot read EIHA\n")); free (buf); return; } eiaf = (struct vms_eiaf *)buf; fprintf (file, /* xgettext:c-format */ _("Image activator fixup: (major: %u, minor: %u)\n"), (unsigned)bfd_getl32 (eiaf->majorid), (unsigned)bfd_getl32 (eiaf->minorid)); /* xgettext:c-format */ fprintf (file, _(" iaflink : 0x%08x %08x\n"), (unsigned)bfd_getl32 (eiaf->iaflink + 0), (unsigned)bfd_getl32 (eiaf->iaflink + 4)); /* xgettext:c-format */ fprintf (file, _(" fixuplnk: 0x%08x %08x\n"), (unsigned)bfd_getl32 (eiaf->fixuplnk + 0), (unsigned)bfd_getl32 (eiaf->fixuplnk + 4)); fprintf (file, _(" size : %u\n"), (unsigned)bfd_getl32 (eiaf->size)); fprintf (file, _(" flags: 0x%08x\n"), (unsigned)bfd_getl32 (eiaf->flags)); qrelfixoff = bfd_getl32 (eiaf->qrelfixoff); lrelfixoff = bfd_getl32 (eiaf->lrelfixoff); /* xgettext:c-format */ fprintf (file, _(" qrelfixoff: %5u, lrelfixoff: %5u\n"), qrelfixoff, lrelfixoff); qdotadroff = bfd_getl32 (eiaf->qdotadroff); ldotadroff = bfd_getl32 (eiaf->ldotadroff); /* xgettext:c-format */ fprintf (file, _(" qdotadroff: %5u, ldotadroff: %5u\n"), qdotadroff, ldotadroff); codeadroff = bfd_getl32 (eiaf->codeadroff); lpfixoff = bfd_getl32 (eiaf->lpfixoff); /* xgettext:c-format */ fprintf (file, _(" codeadroff: %5u, lpfixoff : %5u\n"), codeadroff, lpfixoff); chgprtoff = bfd_getl32 (eiaf->chgprtoff); fprintf (file, _(" chgprtoff : %5u\n"), chgprtoff); shrimgcnt = bfd_getl32 (eiaf->shrimgcnt); shlstoff = bfd_getl32 (eiaf->shlstoff); /* xgettext:c-format */ fprintf (file, _(" shlstoff : %5u, shrimgcnt : %5u\n"), shlstoff, shrimgcnt); /* xgettext:c-format */ fprintf (file, _(" shlextra : %5u, permctx : %5u\n"), (unsigned)bfd_getl32 (eiaf->shlextra), (unsigned)bfd_getl32 (eiaf->permctx)); fprintf (file, _(" base_va : 0x%08x\n"), (unsigned)bfd_getl32 (eiaf->base_va)); fprintf (file, _(" lppsbfixoff: %5u\n"), (unsigned)bfd_getl32 (eiaf->lppsbfixoff)); if (shlstoff) { struct vms_shl *shl = (struct vms_shl *)(buf + shlstoff); unsigned int j; fprintf (file, _(" Shareable images:\n")); for (j = 0; j < shrimgcnt; j++, shl++) { fprintf (file, /* xgettext:c-format */ _(" %u: size: %u, flags: 0x%02x, name: %.*s\n"), j, shl->size, shl->flags, shl->imgnam[0], shl->imgnam + 1); } } if (qrelfixoff != 0) { fprintf (file, _(" quad-word relocation fixups:\n")); evax_bfd_print_relocation_records (file, buf + qrelfixoff, 8); } if (lrelfixoff != 0) { fprintf (file, _(" long-word relocation fixups:\n")); evax_bfd_print_relocation_records (file, buf + lrelfixoff, 4); } if (qdotadroff != 0) { fprintf (file, _(" quad-word .address reference fixups:\n")); evax_bfd_print_address_fixups (file, buf + qdotadroff); } if (ldotadroff != 0) { fprintf (file, _(" long-word .address reference fixups:\n")); evax_bfd_print_address_fixups (file, buf + ldotadroff); } if (codeadroff != 0) { fprintf (file, _(" Code Address Reference Fixups:\n")); evax_bfd_print_reference_fixups (file, buf + codeadroff); } if (lpfixoff != 0) { fprintf (file, _(" Linkage Pairs Reference Fixups:\n")); evax_bfd_print_reference_fixups (file, buf + lpfixoff); } if (chgprtoff) { unsigned int count = (unsigned)bfd_getl32 (buf + chgprtoff); struct vms_eicp *eicp = (struct vms_eicp *)(buf + chgprtoff + 4); unsigned int j; fprintf (file, _(" Change Protection (%u entries):\n"), count); for (j = 0; j < count; j++, eicp++) { unsigned int prot = bfd_getl32 (eicp->newprt); fprintf (file, /* xgettext:c-format */ _(" base: 0x%08x %08x, size: 0x%08x, prot: 0x%08x "), (unsigned)bfd_getl32 (eicp->baseva + 4), (unsigned)bfd_getl32 (eicp->baseva + 0), (unsigned)bfd_getl32 (eicp->size), (unsigned)bfd_getl32 (eicp->newprt)); switch (prot) { case PRT__C_NA: fprintf (file, "NA"); break; case PRT__C_RESERVED: fprintf (file, "RES"); break; case PRT__C_KW: fprintf (file, "KW"); break; case PRT__C_KR: fprintf (file, "KR"); break; case PRT__C_UW: fprintf (file, "UW"); break; case PRT__C_EW: fprintf (file, "EW"); break; case PRT__C_ERKW: fprintf (file, "ERKW"); break; case PRT__C_ER: fprintf (file, "ER"); break; case PRT__C_SW: fprintf (file, "SW"); break; case PRT__C_SREW: fprintf (file, "SREW"); break; case PRT__C_SRKW: fprintf (file, "SRKW"); break; case PRT__C_SR: fprintf (file, "SR"); break; case PRT__C_URSW: fprintf (file, "URSW"); break; case PRT__C_UREW: fprintf (file, "UREW"); break; case PRT__C_URKW: fprintf (file, "URKW"); break; case PRT__C_UR: fprintf (file, "UR"); break; default: fputs ("??", file); break; } fputc ('\n', file); } } free (buf); } } static bfd_boolean vms_bfd_print_private_bfd_data (bfd *abfd, void *ptr) { FILE *file = (FILE *)ptr; if (bfd_get_file_flags (abfd) & (EXEC_P | DYNAMIC)) evax_bfd_print_image (abfd, file); else { if (bfd_seek (abfd, 0, SEEK_SET)) return FALSE; evax_bfd_print_eobj (abfd, file); } return TRUE; } /* Linking. */ /* Slurp ETIR/EDBG/ETBT VMS object records. */ static bfd_boolean alpha_vms_read_sections_content (bfd *abfd, struct bfd_link_info *info) { asection *cur_section; file_ptr cur_offset; asection *dst_section; file_ptr dst_offset; if (bfd_seek (abfd, 0, SEEK_SET) != 0) return FALSE; cur_section = NULL; cur_offset = 0; dst_section = PRIV (dst_section); dst_offset = 0; if (info) { if (info->strip == strip_all || info->strip == strip_debugger) { /* Discard the DST section. */ dst_offset = 0; dst_section = NULL; } else if (dst_section) { dst_offset = dst_section->output_offset; dst_section = dst_section->output_section; } } while (1) { int type; bfd_boolean res; type = _bfd_vms_get_object_record (abfd); if (type < 0) { vms_debug2 ((2, "next_record failed\n")); return FALSE; } switch (type) { case EOBJ__C_ETIR: PRIV (image_section) = cur_section; PRIV (image_offset) = cur_offset; res = _bfd_vms_slurp_etir (abfd, info); cur_section = PRIV (image_section); cur_offset = PRIV (image_offset); break; case EOBJ__C_EDBG: case EOBJ__C_ETBT: if (dst_section == NULL) continue; PRIV (image_section) = dst_section; PRIV (image_offset) = dst_offset; res = _bfd_vms_slurp_etir (abfd, info); dst_offset = PRIV (image_offset); break; case EOBJ__C_EEOM: return TRUE; default: continue; } if (!res) { vms_debug2 ((2, "slurp eobj type %d failed\n", type)); return FALSE; } } } static int alpha_vms_sizeof_headers (bfd *abfd ATTRIBUTE_UNUSED, struct bfd_link_info *info ATTRIBUTE_UNUSED) { return 0; } /* Add a linkage pair fixup at address SECT + OFFSET to SHLIB. */ static void alpha_vms_add_fixup_lp (struct bfd_link_info *info, bfd *src, bfd *shlib) { struct alpha_vms_shlib_el *sl; asection *sect = PRIV2 (src, image_section); file_ptr offset = PRIV2 (src, image_offset); sl = &VEC_EL (alpha_vms_link_hash (info)->shrlibs, struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index)); sl->has_fixups = TRUE; VEC_APPEND_EL (sl->lp, bfd_vma, sect->output_section->vma + sect->output_offset + offset); sect->output_section->flags |= SEC_RELOC; } /* Add a code address fixup at address SECT + OFFSET to SHLIB. */ static void alpha_vms_add_fixup_ca (struct bfd_link_info *info, bfd *src, bfd *shlib) { struct alpha_vms_shlib_el *sl; asection *sect = PRIV2 (src, image_section); file_ptr offset = PRIV2 (src, image_offset); sl = &VEC_EL (alpha_vms_link_hash (info)->shrlibs, struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index)); sl->has_fixups = TRUE; VEC_APPEND_EL (sl->ca, bfd_vma, sect->output_section->vma + sect->output_offset + offset); sect->output_section->flags |= SEC_RELOC; } /* Add a quad word relocation fixup at address SECT + OFFSET to SHLIB. */ static void alpha_vms_add_fixup_qr (struct bfd_link_info *info, bfd *src, bfd *shlib, bfd_vma vec) { struct alpha_vms_shlib_el *sl; struct alpha_vms_vma_ref *r; asection *sect = PRIV2 (src, image_section); file_ptr offset = PRIV2 (src, image_offset); sl = &VEC_EL (alpha_vms_link_hash (info)->shrlibs, struct alpha_vms_shlib_el, PRIV2 (shlib, shr_index)); sl->has_fixups = TRUE; r = VEC_APPEND (sl->qr, struct alpha_vms_vma_ref); r->vma = sect->output_section->vma + sect->output_offset + offset; r->ref = vec; sect->output_section->flags |= SEC_RELOC; } static void alpha_vms_add_fixup_lr (struct bfd_link_info *info ATTRIBUTE_UNUSED, unsigned int shr ATTRIBUTE_UNUSED, bfd_vma vec ATTRIBUTE_UNUSED) { /* Not yet supported. */ abort (); } /* Add relocation. FIXME: Not yet emitted. */ static void alpha_vms_add_lw_reloc (struct bfd_link_info *info ATTRIBUTE_UNUSED) { } static void alpha_vms_add_qw_reloc (struct bfd_link_info *info ATTRIBUTE_UNUSED) { } static struct bfd_hash_entry * alpha_vms_link_hash_newfunc (struct bfd_hash_entry *entry, struct bfd_hash_table *table, const char *string) { struct alpha_vms_link_hash_entry *ret = (struct alpha_vms_link_hash_entry *) entry; /* Allocate the structure if it has not already been allocated by a subclass. */ if (ret == NULL) ret = ((struct alpha_vms_link_hash_entry *) bfd_hash_allocate (table, sizeof (struct alpha_vms_link_hash_entry))); if (ret == NULL) return NULL; /* Call the allocation method of the superclass. */ ret = ((struct alpha_vms_link_hash_entry *) _bfd_link_hash_newfunc ((struct bfd_hash_entry *) ret, table, string)); ret->sym = NULL; return (struct bfd_hash_entry *) ret; } /* Create an Alpha/VMS link hash table. */ static struct bfd_link_hash_table * alpha_vms_bfd_link_hash_table_create (bfd *abfd) { struct alpha_vms_link_hash_table *ret; bfd_size_type amt = sizeof (struct alpha_vms_link_hash_table); ret = (struct alpha_vms_link_hash_table *) bfd_malloc (amt); if (ret == NULL) return NULL; if (!_bfd_link_hash_table_init (&ret->root, abfd, alpha_vms_link_hash_newfunc, sizeof (struct alpha_vms_link_hash_entry))) { free (ret); return NULL; } VEC_INIT (ret->shrlibs); ret->fixup = NULL; return &ret->root; } static bfd_boolean alpha_vms_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info) { unsigned int i; for (i = 0; i < PRIV (gsd_sym_count); i++) { struct vms_symbol_entry *e = PRIV (syms)[i]; struct alpha_vms_link_hash_entry *h; struct bfd_link_hash_entry *h_root; asymbol sym; if (!alpha_vms_convert_symbol (abfd, e, &sym)) return FALSE; if ((e->flags & EGSY__V_DEF) && abfd->selective_search) { /* In selective_search mode, only add definition that are required. */ h = (struct alpha_vms_link_hash_entry *)bfd_link_hash_lookup (info->hash, sym.name, FALSE, FALSE, FALSE); if (h == NULL || h->root.type != bfd_link_hash_undefined) continue; } else h = NULL; h_root = (struct bfd_link_hash_entry *) h; if (!_bfd_generic_link_add_one_symbol (info, abfd, sym.name, sym.flags, sym.section, sym.value, NULL, FALSE, FALSE, &h_root)) return FALSE; h = (struct alpha_vms_link_hash_entry *) h_root; if ((e->flags & EGSY__V_DEF) && h->sym == NULL && abfd->xvec == info->output_bfd->xvec) h->sym = e; } if (abfd->flags & DYNAMIC) { struct alpha_vms_shlib_el *shlib; /* We do not want to include any of the sections in a dynamic object in the output file. See comment in elflink.c. */ bfd_section_list_clear (abfd); shlib = VEC_APPEND (alpha_vms_link_hash (info)->shrlibs, struct alpha_vms_shlib_el); shlib->abfd = abfd; VEC_INIT (shlib->ca); VEC_INIT (shlib->lp); VEC_INIT (shlib->qr); PRIV (shr_index) = VEC_COUNT (alpha_vms_link_hash (info)->shrlibs) - 1; } return TRUE; } static bfd_boolean alpha_vms_link_add_archive_symbols (bfd *abfd, struct bfd_link_info *info) { int pass; struct bfd_link_hash_entry **pundef; struct bfd_link_hash_entry **next_pundef; /* We only accept VMS libraries. */ if (info->output_bfd->xvec != abfd->xvec) { bfd_set_error (bfd_error_wrong_format); return FALSE; } /* The archive_pass field in the archive itself is used to initialize PASS, since we may search the same archive multiple times. */ pass = ++abfd->archive_pass; /* Look through the list of undefined symbols. */ for (pundef = &info->hash->undefs; *pundef != NULL; pundef = next_pundef) { struct bfd_link_hash_entry *h; symindex symidx; bfd *element; bfd *orig_element; h = *pundef; next_pundef = &(*pundef)->u.undef.next; /* When a symbol is defined, it is not necessarily removed from the list. */ if (h->type != bfd_link_hash_undefined && h->type != bfd_link_hash_common) { /* Remove this entry from the list, for general cleanliness and because we are going to look through the list again if we search any more libraries. We can't remove the entry if it is the tail, because that would lose any entries we add to the list later on. */ if (*pundef != info->hash->undefs_tail) { *pundef = *next_pundef; next_pundef = pundef; } continue; } /* Look for this symbol in the archive hash table. */ symidx = _bfd_vms_lib_find_symbol (abfd, h->root.string); if (symidx == BFD_NO_MORE_SYMBOLS) { /* Nothing in this slot. */ continue; } element = bfd_get_elt_at_index (abfd, symidx); if (element == NULL) return FALSE; if (element->archive_pass == -1 || element->archive_pass == pass) { /* Next symbol if this archive is wrong or already handled. */ continue; } if (! bfd_check_format (element, bfd_object)) { element->archive_pass = -1; return FALSE; } orig_element = element; if (bfd_is_thin_archive (abfd)) { element = _bfd_vms_lib_get_imagelib_file (element); if (element == NULL || !bfd_check_format (element, bfd_object)) { orig_element->archive_pass = -1; return FALSE; } } /* Unlike the generic linker, we know that this element provides a definition for an undefined symbol and we know that we want to include it. We don't need to check anything. */ if (!(*info->callbacks ->add_archive_element) (info, element, h->root.string, &element)) continue; if (!alpha_vms_link_add_object_symbols (element, info)) return FALSE; orig_element->archive_pass = pass; } return TRUE; } static bfd_boolean alpha_vms_bfd_link_add_symbols (bfd *abfd, struct bfd_link_info *info) { switch (bfd_get_format (abfd)) { case bfd_object: vms_debug2 ((2, "vms_link_add_symbols for object %s\n", abfd->filename)); return alpha_vms_link_add_object_symbols (abfd, info); break; case bfd_archive: vms_debug2 ((2, "vms_link_add_symbols for archive %s\n", abfd->filename)); return alpha_vms_link_add_archive_symbols (abfd, info); break; default: bfd_set_error (bfd_error_wrong_format); return FALSE; } } static bfd_boolean alpha_vms_build_fixups (struct bfd_link_info *info) { struct alpha_vms_link_hash_table *t = alpha_vms_link_hash (info); unsigned char *content; unsigned int i; unsigned int sz = 0; unsigned int lp_sz = 0; unsigned int ca_sz = 0; unsigned int qr_sz = 0; unsigned int shrimg_cnt = 0; unsigned int chgprt_num = 0; unsigned int chgprt_sz = 0; struct vms_eiaf *eiaf; unsigned int off; asection *sec; /* Shared libraries. */ for (i = 0; i < VEC_COUNT (t->shrlibs); i++) { struct alpha_vms_shlib_el *shlib; shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i); if (!shlib->has_fixups) continue; shrimg_cnt++; if (VEC_COUNT (shlib->ca) > 0) { /* Header + entries. */ ca_sz += 8; ca_sz += VEC_COUNT (shlib->ca) * 4; } if (VEC_COUNT (shlib->lp) > 0) { /* Header + entries. */ lp_sz += 8; lp_sz += VEC_COUNT (shlib->lp) * 4; } if (VEC_COUNT (shlib->qr) > 0) { /* Header + entries. */ qr_sz += 8; qr_sz += VEC_COUNT (shlib->qr) * 8; } } /* Add markers. */ if (ca_sz > 0) ca_sz += 8; if (lp_sz > 0) lp_sz += 8; if (qr_sz > 0) qr_sz += 8; /* Finish now if there is no content. */ if (ca_sz + lp_sz + qr_sz == 0) return TRUE; /* Add an eicp entry for the fixup itself. */ chgprt_num = 1; for (sec = info->output_bfd->sections; sec != NULL; sec = sec->next) { /* This isect could be made RO or EXE after relocations are applied. */ if ((sec->flags & SEC_RELOC) != 0 && (sec->flags & (SEC_CODE | SEC_READONLY)) != 0) chgprt_num++; } chgprt_sz = 4 + chgprt_num * sizeof (struct vms_eicp); /* Allocate section content (round-up size) */ sz = sizeof (struct vms_eiaf) + shrimg_cnt * sizeof (struct vms_shl) + ca_sz + lp_sz + qr_sz + chgprt_sz; sz = (sz + VMS_BLOCK_SIZE - 1) & ~(VMS_BLOCK_SIZE - 1); content = bfd_zalloc (info->output_bfd, sz); if (content == NULL) return FALSE; sec = alpha_vms_link_hash (info)->fixup; sec->contents = content; sec->size = sz; eiaf = (struct vms_eiaf *)content; off = sizeof (struct vms_eiaf); bfd_putl32 (0, eiaf->majorid); bfd_putl32 (0, eiaf->minorid); bfd_putl32 (0, eiaf->iaflink); bfd_putl32 (0, eiaf->fixuplnk); bfd_putl32 (sizeof (struct vms_eiaf), eiaf->size); bfd_putl32 (0, eiaf->flags); bfd_putl32 (0, eiaf->qrelfixoff); bfd_putl32 (0, eiaf->lrelfixoff); bfd_putl32 (0, eiaf->qdotadroff); bfd_putl32 (0, eiaf->ldotadroff); bfd_putl32 (0, eiaf->codeadroff); bfd_putl32 (0, eiaf->lpfixoff); bfd_putl32 (0, eiaf->chgprtoff); bfd_putl32 (shrimg_cnt ? off : 0, eiaf->shlstoff); bfd_putl32 (shrimg_cnt, eiaf->shrimgcnt); bfd_putl32 (0, eiaf->shlextra); bfd_putl32 (0, eiaf->permctx); bfd_putl32 (0, eiaf->base_va); bfd_putl32 (0, eiaf->lppsbfixoff); if (shrimg_cnt) { shrimg_cnt = 0; /* Write shl. */ for (i = 0; i < VEC_COUNT (t->shrlibs); i++) { struct alpha_vms_shlib_el *shlib; struct vms_shl *shl; shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i); if (!shlib->has_fixups) continue; /* Renumber shared images. */ PRIV2 (shlib->abfd, shr_index) = shrimg_cnt++; shl = (struct vms_shl *)(content + off); bfd_putl32 (0, shl->baseva); bfd_putl32 (0, shl->shlptr); bfd_putl32 (0, shl->ident); bfd_putl32 (0, shl->permctx); shl->size = sizeof (struct vms_shl); bfd_putl16 (0, shl->fill_1); shl->flags = 0; bfd_putl32 (0, shl->icb); shl->imgnam[0] = strlen (PRIV2 (shlib->abfd, hdr_data.hdr_t_name)); memcpy (shl->imgnam + 1, PRIV2 (shlib->abfd, hdr_data.hdr_t_name), shl->imgnam[0]); off += sizeof (struct vms_shl); } /* CA fixups. */ if (ca_sz != 0) { bfd_putl32 (off, eiaf->codeadroff); for (i = 0; i < VEC_COUNT (t->shrlibs); i++) { struct alpha_vms_shlib_el *shlib; unsigned int j; shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i); if (VEC_COUNT (shlib->ca) == 0) continue; bfd_putl32 (VEC_COUNT (shlib->ca), content + off); bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4); off += 8; for (j = 0; j < VEC_COUNT (shlib->ca); j++) { bfd_putl32 (VEC_EL (shlib->ca, bfd_vma, j) - t->base_addr, content + off); off += 4; } } bfd_putl32 (0, content + off); bfd_putl32 (0, content + off + 4); off += 8; } /* LP fixups. */ if (lp_sz != 0) { bfd_putl32 (off, eiaf->lpfixoff); for (i = 0; i < VEC_COUNT (t->shrlibs); i++) { struct alpha_vms_shlib_el *shlib; unsigned int j; shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i); if (VEC_COUNT (shlib->lp) == 0) continue; bfd_putl32 (VEC_COUNT (shlib->lp), content + off); bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4); off += 8; for (j = 0; j < VEC_COUNT (shlib->lp); j++) { bfd_putl32 (VEC_EL (shlib->lp, bfd_vma, j) - t->base_addr, content + off); off += 4; } } bfd_putl32 (0, content + off); bfd_putl32 (0, content + off + 4); off += 8; } /* QR fixups. */ if (qr_sz != 0) { bfd_putl32 (off, eiaf->qdotadroff); for (i = 0; i < VEC_COUNT (t->shrlibs); i++) { struct alpha_vms_shlib_el *shlib; unsigned int j; shlib = &VEC_EL (t->shrlibs, struct alpha_vms_shlib_el, i); if (VEC_COUNT (shlib->qr) == 0) continue; bfd_putl32 (VEC_COUNT (shlib->qr), content + off); bfd_putl32 (PRIV2 (shlib->abfd, shr_index), content + off + 4); off += 8; for (j = 0; j < VEC_COUNT (shlib->qr); j++) { struct alpha_vms_vma_ref *r; r = &VEC_EL (shlib->qr, struct alpha_vms_vma_ref, j); bfd_putl32 (r->vma - t->base_addr, content + off); bfd_putl32 (r->ref, content + off + 4); off += 8; } } bfd_putl32 (0, content + off); bfd_putl32 (0, content + off + 4); off += 8; } } /* Write the change protection table. */ bfd_putl32 (off, eiaf->chgprtoff); bfd_putl32 (chgprt_num, content + off); off += 4; for (sec = info->output_bfd->sections; sec != NULL; sec = sec->next) { struct vms_eicp *eicp; unsigned int prot; if ((sec->flags & SEC_LINKER_CREATED) != 0 && strcmp (sec->name, "$FIXUP$") == 0) prot = PRT__C_UREW; else if ((sec->flags & SEC_RELOC) != 0 && (sec->flags & (SEC_CODE | SEC_READONLY)) != 0) prot = PRT__C_UR; else continue; eicp = (struct vms_eicp *)(content + off); bfd_putl64 (sec->vma - t->base_addr, eicp->baseva); bfd_putl32 ((sec->size + VMS_BLOCK_SIZE - 1) & ~(VMS_BLOCK_SIZE - 1), eicp->size); bfd_putl32 (prot, eicp->newprt); off += sizeof (struct vms_eicp); } return TRUE; } /* Called by bfd_hash_traverse to fill the symbol table. Return FALSE in case of failure. */ static bfd_boolean alpha_vms_link_output_symbol (struct bfd_hash_entry *bh, void *infov) { struct bfd_link_hash_entry *hc = (struct bfd_link_hash_entry *) bh; struct bfd_link_info *info = (struct bfd_link_info *)infov; struct alpha_vms_link_hash_entry *h; struct vms_symbol_entry *sym; if (hc->type == bfd_link_hash_warning) { hc = hc->u.i.link; if (hc->type == bfd_link_hash_new) return TRUE; } h = (struct alpha_vms_link_hash_entry *) hc; switch (h->root.type) { case bfd_link_hash_undefined: return TRUE; case bfd_link_hash_new: case bfd_link_hash_warning: abort (); case bfd_link_hash_undefweak: return TRUE; case bfd_link_hash_defined: case bfd_link_hash_defweak: { asection *sec = h->root.u.def.section; /* FIXME: this is certainly a symbol from a dynamic library. */ if (bfd_is_abs_section (sec)) return TRUE; if (sec->owner->flags & DYNAMIC) return TRUE; } break; case bfd_link_hash_common: break; case bfd_link_hash_indirect: return TRUE; } /* Do not write not kept symbols. */ if (info->strip == strip_some && bfd_hash_lookup (info->keep_hash, h->root.root.string, FALSE, FALSE) != NULL) return TRUE; if (h->sym == NULL) { /* This symbol doesn't come from a VMS object. So we suppose it is a data. */ int len = strlen (h->root.root.string); sym = (struct vms_symbol_entry *)bfd_zalloc (info->output_bfd, sizeof (*sym) + len); if (sym == NULL) abort (); sym->namelen = len; memcpy (sym->name, h->root.root.string, len); sym->name[len] = 0; sym->owner = info->output_bfd; sym->typ = EGSD__C_SYMG; sym->data_type = 0; sym->flags = EGSY__V_DEF | EGSY__V_REL; sym->symbol_vector = h->root.u.def.value; sym->section = h->root.u.def.section; sym->value = h->root.u.def.value; } else sym = h->sym; if (!add_symbol_entry (info->output_bfd, sym)) return FALSE; return TRUE; } static bfd_boolean alpha_vms_bfd_final_link (bfd *abfd, struct bfd_link_info *info) { asection *o; struct bfd_link_order *p; bfd *sub; asection *fixupsec; bfd_vma base_addr; bfd_vma last_addr; asection *dst; asection *dmt; if (bfd_link_relocatable (info)) { /* FIXME: we do not yet support relocatable link. It is not obvious how to do it for debug infos. */ (*info->callbacks->einfo)(_("%P: relocatable link is not supported\n")); return FALSE; } bfd_get_outsymbols (abfd) = NULL; bfd_get_symcount (abfd) = 0; /* Mark all sections which will be included in the output file. */ for (o = abfd->sections; o != NULL; o = o->next) for (p = o->map_head.link_order; p != NULL; p = p->next) if (p->type == bfd_indirect_link_order) p->u.indirect.section->linker_mark = TRUE; #if 0 /* Handle all the link order information for the sections. */ for (o = abfd->sections; o != NULL; o = o->next) { printf ("For section %s (at 0x%08x, flags=0x%08x):\n", o->name, (unsigned)o->vma, (unsigned)o->flags); for (p = o->map_head.link_order; p != NULL; p = p->next) { printf (" at 0x%08x - 0x%08x: ", (unsigned)p->offset, (unsigned)(p->offset + p->size - 1)); switch (p->type) { case bfd_section_reloc_link_order: case bfd_symbol_reloc_link_order: printf (" section/symbol reloc\n"); break; case bfd_indirect_link_order: printf (" section %s of %s\n", p->u.indirect.section->name, p->u.indirect.section->owner->filename); break; case bfd_data_link_order: printf (" explicit data\n"); break; default: printf (" *unknown* type %u\n", p->type); break; } } } #endif /* Generate the symbol table. */ BFD_ASSERT (PRIV (syms) == NULL); if (info->strip != strip_all) bfd_hash_traverse (&info->hash->table, alpha_vms_link_output_symbol, info); /* Find the entry point. */ if (bfd_get_start_address (abfd) == 0) { bfd *startbfd = NULL; for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { /* Consider only VMS object files. */ if (sub->xvec != abfd->xvec) continue; if (!PRIV2 (sub, eom_data).eom_has_transfer) continue; if ((PRIV2 (sub, eom_data).eom_b_tfrflg & EEOM__M_WKTFR) && startbfd) continue; if (startbfd != NULL && !(PRIV2 (sub, eom_data).eom_b_tfrflg & EEOM__M_WKTFR)) { (*info->callbacks->einfo) /* xgettext:c-format */ (_("%P: multiple entry points: in modules %pB and %pB\n"), startbfd, sub); continue; } startbfd = sub; } if (startbfd) { unsigned int ps_idx = PRIV2 (startbfd, eom_data).eom_l_psindx; bfd_vma tfradr = PRIV2 (startbfd, eom_data).eom_l_tfradr; asection *sec; sec = PRIV2 (startbfd, sections)[ps_idx]; bfd_set_start_address (abfd, sec->output_section->vma + sec->output_offset + tfradr); } } /* Set transfer addresses. */ { int i; struct bfd_link_hash_entry *h; i = 0; PRIV (transfer_address[i++]) = 0xffffffff00000340ULL; /* SYS$IMGACT */ h = bfd_link_hash_lookup (info->hash, "LIB$INITIALIZE", FALSE, FALSE, TRUE); if (h != NULL && h->type == bfd_link_hash_defined) PRIV (transfer_address[i++]) = alpha_vms_get_sym_value (h->u.def.section, h->u.def.value); PRIV (transfer_address[i++]) = bfd_get_start_address (abfd); while (i < 4) PRIV (transfer_address[i++]) = 0; } /* Allocate contents. Also compute the virtual base address. */ base_addr = (bfd_vma)-1; last_addr = 0; for (o = abfd->sections; o != NULL; o = o->next) { if (o->flags & SEC_HAS_CONTENTS) { o->contents = bfd_alloc (abfd, o->size); if (o->contents == NULL) return FALSE; } if (o->flags & SEC_LOAD) { if (o->vma < base_addr) base_addr = o->vma; if (o->vma + o->size > last_addr) last_addr = o->vma + o->size; } /* Clear the RELOC flags. Currently we don't support incremental linking. We use the RELOC flag for computing the eicp entries. */ o->flags &= ~SEC_RELOC; } /* Create the fixup section. */ fixupsec = bfd_make_section_anyway_with_flags (info->output_bfd, "$FIXUP$", SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS | SEC_LINKER_CREATED); if (fixupsec == NULL) return FALSE; last_addr = (last_addr + 0xffff) & ~0xffff; fixupsec->vma = last_addr; alpha_vms_link_hash (info)->fixup = fixupsec; alpha_vms_link_hash (info)->base_addr = base_addr; /* Create the DMT section, if necessary. */ BFD_ASSERT (PRIV (dst_section) == NULL); dst = bfd_get_section_by_name (abfd, "$DST$"); if (dst != NULL && dst->size == 0) dst = NULL; if (dst != NULL) { PRIV (dst_section) = dst; dmt = bfd_make_section_anyway_with_flags (info->output_bfd, "$DMT$", SEC_DEBUGGING | SEC_HAS_CONTENTS | SEC_LINKER_CREATED); if (dmt == NULL) return FALSE; } else dmt = NULL; /* Read all sections from the inputs. */ for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { if (sub->flags & DYNAMIC) { alpha_vms_create_eisd_for_shared (abfd, sub); continue; } if (!alpha_vms_read_sections_content (sub, info)) return FALSE; } /* Handle all the link order information for the sections. Note: past this point, it is not possible to create new sections. */ for (o = abfd->sections; o != NULL; o = o->next) { for (p = o->map_head.link_order; p != NULL; p = p->next) { switch (p->type) { case bfd_section_reloc_link_order: case bfd_symbol_reloc_link_order: abort (); return FALSE; case bfd_indirect_link_order: /* Already done. */ break; default: if (! _bfd_default_link_order (abfd, info, o, p)) return FALSE; break; } } } /* Compute fixups. */ if (!alpha_vms_build_fixups (info)) return FALSE; /* Compute the DMT. */ if (dmt != NULL) { int pass; unsigned char *contents = NULL; /* In pass 1, compute the size. In pass 2, write the DMT contents. */ for (pass = 0; pass < 2; pass++) { unsigned int off = 0; /* For each object file (ie for each module). */ for (sub = info->input_bfds; sub != NULL; sub = sub->link.next) { asection *sub_dst; struct vms_dmt_header *dmth = NULL; unsigned int psect_count; /* Skip this module if it has no DST. */ sub_dst = PRIV2 (sub, dst_section); if (sub_dst == NULL || sub_dst->size == 0) continue; if (pass == 1) { /* Write the header. */ dmth = (struct vms_dmt_header *)(contents + off); bfd_putl32 (sub_dst->output_offset, dmth->modbeg); bfd_putl32 (sub_dst->size, dmth->size); } off += sizeof (struct vms_dmt_header); psect_count = 0; /* For each section (ie for each psect). */ for (o = sub->sections; o != NULL; o = o->next) { /* Only consider interesting sections. */ if (!(o->flags & SEC_ALLOC)) continue; if (o->flags & SEC_LINKER_CREATED) continue; if (pass == 1) { /* Write an entry. */ struct vms_dmt_psect *dmtp; dmtp = (struct vms_dmt_psect *)(contents + off); bfd_putl32 (o->output_offset + o->output_section->vma, dmtp->start); bfd_putl32 (o->size, dmtp->length); psect_count++; } off += sizeof (struct vms_dmt_psect); } if (pass == 1) bfd_putl32 (psect_count, dmth->psect_count); } if (pass == 0) { contents = bfd_zalloc (info->output_bfd, off); if (contents == NULL) return FALSE; dmt->contents = contents; dmt->size = off; } else { BFD_ASSERT (off == dmt->size); } } } return TRUE; } /* Read the contents of a section. buf points to a buffer of buf_size bytes to be filled with section data (starting at offset into section) */ static bfd_boolean alpha_vms_get_section_contents (bfd *abfd, asection *section, void *buf, file_ptr offset, bfd_size_type count) { asection *sec; /* Image are easy. */ if (bfd_get_file_flags (abfd) & (EXEC_P | DYNAMIC)) return _bfd_generic_get_section_contents (abfd, section, buf, offset, count); /* Safety check. */ if (offset + count < count || offset + count > section->size) { bfd_set_error (bfd_error_invalid_operation); return FALSE; } /* If the section is already in memory, just copy it. */ if (section->flags & SEC_IN_MEMORY) { BFD_ASSERT (section->contents != NULL); memcpy (buf, section->contents + offset, count); return TRUE; } if (section->size == 0) return TRUE; /* Alloc in memory and read ETIRs. */ for (sec = abfd->sections; sec; sec = sec->next) { BFD_ASSERT (sec->contents == NULL); if (sec->size != 0 && (sec->flags & SEC_HAS_CONTENTS)) { sec->contents = bfd_alloc (abfd, sec->size); if (sec->contents == NULL) return FALSE; } } if (!alpha_vms_read_sections_content (abfd, NULL)) return FALSE; for (sec = abfd->sections; sec; sec = sec->next) if (sec->contents) sec->flags |= SEC_IN_MEMORY; memcpy (buf, section->contents + offset, count); return TRUE; } /* Set the format of a file being written. */ static bfd_boolean alpha_vms_mkobject (bfd * abfd) { const bfd_arch_info_type *arch; vms_debug2 ((1, "alpha_vms_mkobject (%p)\n", abfd)); if (!vms_initialize (abfd)) return FALSE; PRIV (recwr.buf) = bfd_alloc (abfd, MAX_OUTREC_SIZE); if (PRIV (recwr.buf) == NULL) return FALSE; arch = bfd_scan_arch ("alpha"); if (arch == 0) { bfd_set_error (bfd_error_wrong_format); return FALSE; } abfd->arch_info = arch; return TRUE; } /* 4.1, generic. */ /* Called when the BFD is being closed to do any necessary cleanup. */ static bfd_boolean vms_close_and_cleanup (bfd * abfd) { vms_debug2 ((1, "vms_close_and_cleanup (%p)\n", abfd)); if (abfd == NULL || abfd->tdata.any == NULL) return TRUE; if (abfd->format == bfd_archive) { bfd_release (abfd, abfd->tdata.any); abfd->tdata.any = NULL; return TRUE; } if (PRIV (recrd.buf) != NULL) free (PRIV (recrd.buf)); if (PRIV (sections) != NULL) free (PRIV (sections)); bfd_release (abfd, abfd->tdata.any); abfd->tdata.any = NULL; #ifdef VMS if (abfd->direction == write_direction) { /* Last step on VMS is to convert the file to variable record length format. */ if (!bfd_cache_close (abfd)) return FALSE; if (!_bfd_vms_convert_to_var_unix_filename (abfd->filename)) return FALSE; } #endif return TRUE; } /* Called when a new section is created. */ static bfd_boolean vms_new_section_hook (bfd * abfd, asection *section) { bfd_size_type amt; vms_debug2 ((1, "vms_new_section_hook (%p, [%u]%s)\n", abfd, section->index, section->name)); if (! bfd_set_section_alignment (abfd, section, 0)) return FALSE; vms_debug2 ((7, "%u: %s\n", section->index, section->name)); amt = sizeof (struct vms_section_data_struct); section->used_by_bfd = bfd_zalloc (abfd, amt); if (section->used_by_bfd == NULL) return FALSE; /* Create the section symbol. */ return _bfd_generic_new_section_hook (abfd, section); } /* Part 4.5, symbols. */ /* Print symbol to file according to how. how is one of bfd_print_symbol_name just print the name bfd_print_symbol_more print more (???) bfd_print_symbol_all print all we know, which is not much right now :-). */ static void vms_print_symbol (bfd * abfd, void * file, asymbol *symbol, bfd_print_symbol_type how) { vms_debug2 ((1, "vms_print_symbol (%p, %p, %p, %d)\n", abfd, file, symbol, how)); switch (how) { case bfd_print_symbol_name: case bfd_print_symbol_more: fprintf ((FILE *)file," %s", symbol->name); break; case bfd_print_symbol_all: { const char *section_name = symbol->section->name; bfd_print_symbol_vandf (abfd, file, symbol); fprintf ((FILE *) file," %-8s %s", section_name, symbol->name); } break; } } /* Return information about symbol in ret. fill type, value and name type: A absolute B bss segment symbol C common symbol D data segment symbol f filename t a static function symbol T text segment symbol U undefined - debug. */ static void vms_get_symbol_info (bfd * abfd ATTRIBUTE_UNUSED, asymbol *symbol, symbol_info *ret) { asection *sec; vms_debug2 ((1, "vms_get_symbol_info (%p, %p, %p)\n", abfd, symbol, ret)); sec = symbol->section; if (ret == NULL) return; if (sec == NULL) ret->type = 'U'; else if (bfd_is_com_section (sec)) ret->type = 'C'; else if (bfd_is_abs_section (sec)) ret->type = 'A'; else if (bfd_is_und_section (sec)) ret->type = 'U'; else if (bfd_is_ind_section (sec)) ret->type = 'I'; else if ((symbol->flags & BSF_FUNCTION) || (bfd_get_section_flags (abfd, sec) & SEC_CODE)) ret->type = 'T'; else if (bfd_get_section_flags (abfd, sec) & SEC_DATA) ret->type = 'D'; else if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC) ret->type = 'B'; else ret->type = '?'; if (ret->type != 'U') ret->value = symbol->value + symbol->section->vma; else ret->value = 0; ret->name = symbol->name; } /* Return TRUE if the given symbol sym in the BFD abfd is a compiler generated local label, else return FALSE. */ static bfd_boolean vms_bfd_is_local_label_name (bfd * abfd ATTRIBUTE_UNUSED, const char *name) { return name[0] == '$'; } /* Part 4.7, writing an object file. */ /* Sets the contents of the section section in BFD abfd to the data starting in memory at LOCATION. The data is written to the output section starting at offset offset for count bytes. Normally TRUE is returned, else FALSE. Possible error returns are: o bfd_error_no_contents - The output section does not have the SEC_HAS_CONTENTS attribute, so nothing can be written to it. o and some more too */ static bfd_boolean _bfd_vms_set_section_contents (bfd * abfd, asection *section, const void * location, file_ptr offset, bfd_size_type count) { if (section->contents == NULL) { section->contents = bfd_alloc (abfd, section->size); if (section->contents == NULL) return FALSE; memcpy (section->contents + offset, location, (size_t) count); } return TRUE; } /* Set the architecture and machine type in BFD abfd to arch and mach. Find the correct pointer to a structure and insert it into the arch_info pointer. */ static bfd_boolean alpha_vms_set_arch_mach (bfd *abfd, enum bfd_architecture arch, unsigned long mach) { if (arch != bfd_arch_alpha && arch != bfd_arch_unknown) return FALSE; return bfd_default_set_arch_mach (abfd, arch, mach); } /* Set section VMS flags. Clear NO_FLAGS and set FLAGS. */ void bfd_vms_set_section_flags (bfd *abfd ATTRIBUTE_UNUSED, asection *sec, flagword no_flags, flagword flags) { vms_section_data (sec)->no_flags = no_flags; vms_section_data (sec)->flags = flags; } struct vms_private_data_struct * bfd_vms_get_data (bfd *abfd) { return (struct vms_private_data_struct *)abfd->tdata.any; } #define vms_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define vms_bfd_link_just_syms _bfd_generic_link_just_syms #define vms_bfd_copy_link_hash_symbol_type \ _bfd_generic_copy_link_hash_symbol_type #define vms_bfd_is_group_section bfd_generic_is_group_section #define vms_bfd_discard_group bfd_generic_discard_group #define vms_section_already_linked _bfd_generic_section_already_linked #define vms_bfd_define_common_symbol bfd_generic_define_common_symbol #define vms_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define vms_bfd_define_start_stop bfd_generic_define_start_stop #define vms_bfd_copy_private_header_data _bfd_generic_bfd_copy_private_header_data #define vms_bfd_copy_private_bfd_data _bfd_generic_bfd_copy_private_bfd_data #define vms_bfd_free_cached_info _bfd_generic_bfd_free_cached_info #define vms_bfd_copy_private_section_data _bfd_generic_bfd_copy_private_section_data #define vms_bfd_copy_private_symbol_data _bfd_generic_bfd_copy_private_symbol_data #define vms_bfd_set_private_flags _bfd_generic_bfd_set_private_flags #define vms_bfd_merge_private_bfd_data _bfd_generic_bfd_merge_private_bfd_data /* Symbols table. */ #define alpha_vms_make_empty_symbol _bfd_generic_make_empty_symbol #define alpha_vms_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false #define alpha_vms_print_symbol vms_print_symbol #define alpha_vms_get_symbol_info vms_get_symbol_info #define alpha_vms_get_symbol_version_string \ _bfd_nosymbols_get_symbol_version_string #define alpha_vms_read_minisymbols _bfd_generic_read_minisymbols #define alpha_vms_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol #define alpha_vms_get_lineno _bfd_nosymbols_get_lineno #define alpha_vms_find_inliner_info _bfd_nosymbols_find_inliner_info #define alpha_vms_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol #define alpha_vms_find_nearest_line _bfd_vms_find_nearest_line #define alpha_vms_find_line _bfd_nosymbols_find_line #define alpha_vms_bfd_is_local_label_name vms_bfd_is_local_label_name /* Generic table. */ #define alpha_vms_close_and_cleanup vms_close_and_cleanup #define alpha_vms_bfd_free_cached_info vms_bfd_free_cached_info #define alpha_vms_new_section_hook vms_new_section_hook #define alpha_vms_set_section_contents _bfd_vms_set_section_contents #define alpha_vms_get_section_contents_in_window _bfd_generic_get_section_contents_in_window #define alpha_vms_bfd_get_relocated_section_contents \ bfd_generic_get_relocated_section_contents #define alpha_vms_bfd_relax_section bfd_generic_relax_section #define alpha_vms_bfd_gc_sections bfd_generic_gc_sections #define alpha_vms_bfd_lookup_section_flags bfd_generic_lookup_section_flags #define alpha_vms_bfd_merge_sections bfd_generic_merge_sections #define alpha_vms_bfd_is_group_section bfd_generic_is_group_section #define alpha_vms_bfd_discard_group bfd_generic_discard_group #define alpha_vms_section_already_linked \ _bfd_generic_section_already_linked #define alpha_vms_bfd_define_common_symbol bfd_generic_define_common_symbol #define alpha_vms_bfd_link_hide_symbol _bfd_generic_link_hide_symbol #define alpha_vms_bfd_define_start_stop bfd_generic_define_start_stop #define alpha_vms_bfd_link_just_syms _bfd_generic_link_just_syms #define alpha_vms_bfd_copy_link_hash_symbol_type \ _bfd_generic_copy_link_hash_symbol_type #define alpha_vms_bfd_link_split_section _bfd_generic_link_split_section #define alpha_vms_get_dynamic_symtab_upper_bound \ _bfd_nodynamic_get_dynamic_symtab_upper_bound #define alpha_vms_canonicalize_dynamic_symtab \ _bfd_nodynamic_canonicalize_dynamic_symtab #define alpha_vms_get_dynamic_reloc_upper_bound \ _bfd_nodynamic_get_dynamic_reloc_upper_bound #define alpha_vms_canonicalize_dynamic_reloc \ _bfd_nodynamic_canonicalize_dynamic_reloc #define alpha_vms_bfd_link_check_relocs _bfd_generic_link_check_relocs const bfd_target alpha_vms_vec = { "vms-alpha", /* Name. */ bfd_target_evax_flavour, BFD_ENDIAN_LITTLE, /* Data byte order is little. */ BFD_ENDIAN_LITTLE, /* Header byte order is little. */ (HAS_RELOC | EXEC_P | HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), /* Object flags. */ (SEC_ALLOC | SEC_LOAD | SEC_RELOC | SEC_READONLY | SEC_CODE | SEC_DATA | SEC_HAS_CONTENTS | SEC_IN_MEMORY), /* Sect flags. */ 0, /* symbol_leading_char. */ ' ', /* ar_pad_char. */ 15, /* ar_max_namelen. */ 0, /* match priority. */ bfd_getl64, bfd_getl_signed_64, bfd_putl64, bfd_getl32, bfd_getl_signed_32, bfd_putl32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, bfd_getl64, bfd_getl_signed_64, bfd_putl64, bfd_getl32, bfd_getl_signed_32, bfd_putl32, bfd_getl16, bfd_getl_signed_16, bfd_putl16, { /* bfd_check_format. */ _bfd_dummy_target, alpha_vms_object_p, _bfd_vms_lib_alpha_archive_p, _bfd_dummy_target }, { /* bfd_set_format. */ _bfd_bool_bfd_false_error, alpha_vms_mkobject, _bfd_vms_lib_alpha_mkarchive, _bfd_bool_bfd_false_error }, { /* bfd_write_contents. */ _bfd_bool_bfd_false_error, alpha_vms_write_object_contents, _bfd_vms_lib_write_archive_contents, _bfd_bool_bfd_false_error }, BFD_JUMP_TABLE_GENERIC (alpha_vms), BFD_JUMP_TABLE_COPY (vms), BFD_JUMP_TABLE_CORE (_bfd_nocore), BFD_JUMP_TABLE_ARCHIVE (_bfd_vms_lib), BFD_JUMP_TABLE_SYMBOLS (alpha_vms), BFD_JUMP_TABLE_RELOCS (alpha_vms), BFD_JUMP_TABLE_WRITE (alpha_vms), BFD_JUMP_TABLE_LINK (alpha_vms), BFD_JUMP_TABLE_DYNAMIC (alpha_vms), NULL, NULL };