Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm Sender: cygwin-owner AT sourceware DOT cygnus DOT com Delivered-To: mailing list cygwin AT sourceware DOT cygnus DOT com Date: Tue, 2 Mar 1999 18:05:24 +0100 From: Juergen Lock To: cygwin AT sourceware DOT cygnus DOT com Subject: patches to objdump and link M$-compiled objects... Message-ID: <19990302180524.A16319@saturn.hb.north.de> Mail-Followup-To: cygwin AT sourceware DOT cygnus DOT com Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.95.1i Yes i promised to send them so here they are :) Beware, these are still not pretty, just hacked-enough-until-it-works... But I'm open to suggestions of course. If your on {Free,Net}BSD you can build everything by unpacking in an empty dir, mkdir /usr/ports/distfiles/gnu_win32-b20.1 and put dev-src.tar.bz2 there, then say make. (And to install everything, become root then make install.) Otherwise you can ignore everything but the patches/*, and apply them by hand. Btw I put in a few comments about what they do so you might want to look at the shar file before unpacking. Have fun! What does not work: . weak symbols (C_NT_WEAK) with characteristics 1 flag (meaning don't search libraries), the libs are always searched ie it always works as with characteristics 2. . dll imports by ordinal as opposed to by name; objdump knows them but if an (M$-generated) object imports by ordinal ld still produces a broken import table. workaround: link with dlltool-generated import libs. . using ld to add a symbol table to a dll so that objdump -d produces a more meaningful listing. this used to work with b17 (with my patches), now even --whole-archive doesn't help. Well I guess i shouldn't expect this to work but it was a useful `feature'... Oh and if you leave out patch-diff* and patch-man1dir1 and add this: Index: ../ld/deffilep.y @@ -91,7 +91,7 @@ static void def_directive PARAMS ((char *)); static int def_parse PARAMS ((void)); static int def_error PARAMS ((const char *)); -static int def_debug; +int def_debug; static int def_lex PARAMS ((void)); static int lex_forced_token = 0; then the patches also apply to DJ Delorie's binutils snapshot, gas+utils.tgz (as of 990209), in fact that is what i'm using now. Regards, Juergen # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # patches/ # patches/patch-bb # patches/patch-bc # patches/patch-coffcode3 # patches/patch-coffgen7 # patches/patch-cofflink-reloc2 # patches/patch-cofflink4d # patches/patch-diff1 # patches/patch-diff2 # patches/patch-diff3 # patches/patch-dlltool1 # patches/patch-edata11 # patches/patch-gas-sym # patches/patch-gas-sym2 # patches/patch-gccp1 # patches/patch-gccp2 # patches/patch-gccp3c # patches/patch-man1dir1 # patches/patch-peicode-idata5a # patches/patch-peicode2 # patches/patch-peicode3 # patches/patch-peicode3a # patches/patch-peicode4a # patches/patch-peicode77 # patches/patch-readelf1 # patches/patch-sectionsym1 # patches/patch-sectionsym2 # patches/patch-windres02 # Makefile # files/ # files/md5 # pkg/ # pkg/COMMENT # pkg/DESCR # pkg/PLIST # echo c - patches/ mkdir -p patches/ > /dev/null 2>&1 echo x - patches/patch-bb sed 's/^X//' >patches/patch-bb << 'END-of-patches/patch-bb' XHandle comdat sections, specifically IMAGE_COMDAT_SELECT_ASSOCIATIVE... X XIndex: ../bfd/bfd-in2.h X@@ -1068,6 +1068,18 @@ X X struct bfd_link_order *link_order_head; X struct bfd_link_order *link_order_tail; X+#if 1 /* PE COFF specific.. */ X+ CONST char *pe_comdat_sym_name; X+ struct X+ { X+ long x_scnlen; /* section length */ X+ unsigned short x_nreloc; /* # relocation entries */ X+ unsigned short x_nlinno; /* # line numbers */ X+ unsigned long x_checksum; /* section COMDAT checksum for PE */ X+ unsigned short x_associated; /* COMDAT associated section index for PE */ X+ unsigned char x_comdat; /* COMDAT selection number for PE */ X+ } pe_comdat_auxent; X+#endif X } asection ; X X /* These sections are global, and are managed by BFD. The application XIndex: ../bfd/coffcode.h X@@ -430,10 +430,11 @@ X * in sec_to_styp_flags(). X */ X static flagword X-styp_to_sec_flags (abfd, hdr, name) X+styp_to_sec_flags (abfd, hdr, name, sec) X bfd *abfd; X PTR hdr; X const char *name; X+ asection *sec; X { X struct internal_scnhdr *internal_s = (struct internal_scnhdr *) hdr; X long styp_flags = internal_s->s_flags; X@@ -464,6 +465,77 @@ X } X else if (styp_flags & STYP_BSS) X { X+#if 1 X+ int idxsec = sec->index + 1; X+ X+ /* Unfortunately, the PE format stores essential information in X+ the symbol table, of all places. We need to extract that X+ information now, so that objdump and the linker will know how X+ to handle the section without worrying about the symbols. We X+ can't call slurp_symtab, because the linker doesn't want the X+ swapped symbols. */ X+ X+ if (!internal_s->s_size && _bfd_coff_get_external_symbols (abfd)) X+ { X+ bfd_byte *esym, *esymend; X+ X+ esym = (bfd_byte *) obj_coff_external_syms (abfd); X+ esymend = esym + obj_raw_syment_count (abfd) * SYMESZ; X+ X+ while (esym < esymend) X+ { X+ struct internal_syment isym; X+ X+ bfd_coff_swap_sym_in (abfd, (PTR) esym, (PTR) &isym); X+ X+ if (sizeof (internal_s->s_name) > SYMNMLEN) X+ { X+ /* This case implies that the matching symbol name X+ will be in the string table. */ X+ abort (); X+ } X+ X+#if 1 X+ if (isym.n_scnum == idxsec X+ && isym.n_sclass == C_STAT X+ && isym.n_type == T_NULL X+ && isym.n_numaux == 1) X+#else X+ if (isym.n_sclass == C_STAT X+ && isym.n_type == T_NULL X+ && isym.n_numaux == 1) X+#endif X+ { X+ char buf[SYMNMLEN + 1]; X+ const char *symname; X+ int auxcpp = 0; X+ X+ symname = _bfd_coff_internal_syment_name (abfd, &isym, buf); X+ if (symname == NULL) X+ abort (); X+ X+ if (strcmp (name, symname) == 0) X+ { X+ union internal_auxent aux; X+ X+ /* This is the section symbol. */ X+ X+ bfd_coff_swap_aux_in (abfd, (PTR) (esym + SYMESZ), X+ isym.n_type, isym.n_sclass, X+ 0, isym.n_numaux, (PTR) &aux); X+ X+ if (!internal_s->s_size) { X+ internal_s->s_size = sec->_raw_size = aux.x_scn.x_scnlen; X+ } X+ X+ break; X+ } X+ } X+ X+ esym += (isym.n_numaux + 1) * SYMESZ; X+ } X+ } X+#endif X #ifdef BSS_NOLOAD_IS_SHARED_LIBRARY X if (sec_flags & SEC_NEVER_LOAD) X sec_flags |= SEC_ALLOC | SEC_COFF_SHARED_LIBRARY; X@@ -554,6 +626,8 @@ X X if (styp_flags & IMAGE_SCN_LNK_COMDAT) X { X+ int idxsec = sec->index + 1; X+ X sec_flags |= SEC_LINK_ONCE; X X /* Unfortunately, the PE format stores essential information in X@@ -583,12 +657,20 @@ X abort (); X } X X+#if 1 X+ if (isym.n_scnum == idxsec X+ && isym.n_sclass == C_STAT X+ && isym.n_type == T_NULL X+ && isym.n_numaux == 1) X+#else X if (isym.n_sclass == C_STAT X && isym.n_type == T_NULL X && isym.n_numaux == 1) X+#endif X { X char buf[SYMNMLEN + 1]; X const char *symname; X+ int auxcpp = 0; X X symname = _bfd_coff_internal_syment_name (abfd, &isym, buf); X if (symname == NULL) X@@ -608,30 +690,86 @@ X { X case IMAGE_COMDAT_SELECT_NODUPLICATES: X sec_flags |= SEC_LINK_DUPLICATES_ONE_ONLY; X+ auxcpp = 1; X break; X X default: X case IMAGE_COMDAT_SELECT_ANY: X sec_flags |= SEC_LINK_DUPLICATES_DISCARD; X+ auxcpp = 1; X break; X X case IMAGE_COMDAT_SELECT_SAME_SIZE: X sec_flags |= SEC_LINK_DUPLICATES_SAME_SIZE; X+ auxcpp = 1; X break; X X case IMAGE_COMDAT_SELECT_EXACT_MATCH: X sec_flags |= SEC_LINK_DUPLICATES_SAME_CONTENTS; X+ auxcpp = 1; X break; X X case IMAGE_COMDAT_SELECT_ASSOCIATIVE: X /* FIXME: This is not currently implemented. */ X+#if 1 X+ { X+ asection *sect; X+ for (sect = sec->owner->sections; sect != NULL; sect = sect->next) { X+ if (sect->index + 1 == aux.x_scn.x_associated) X+ break; X+ } X+ if (sect) { X+ sec->pe_comdat_sym_name = sect->pe_comdat_sym_name; X+ sec_flags |= (sect->flags & SEC_LINK_DUPLICATES); X+ } else { X+ sec_flags |= SEC_LINK_DUPLICATES_DISCARD; X+ } X+ } X+#else X sec_flags |= SEC_LINK_DUPLICATES_DISCARD; X+#endif X+ auxcpp = 1; X break; X } X X+ if (auxcpp) { X+ (sec)->pe_comdat_auxent.x_scnlen = aux.x_scn.x_scnlen; X+ (sec)->pe_comdat_auxent.x_comdat = aux.x_scn.x_comdat; X+ (sec)->pe_comdat_auxent.x_associated = aux.x_scn.x_associated; X+ (sec)->pe_comdat_auxent.x_nreloc = aux.x_scn.x_nreloc; X+ (sec)->pe_comdat_auxent.x_nlinno = aux.x_scn.x_nlinno; X+ (sec)->pe_comdat_auxent.x_checksum = aux.x_scn.x_checksum; X+ esym += (isym.n_numaux + 1) * SYMESZ; X+ continue; X+ } else X break; X } X } X+#if 1 X+ if (isym.n_scnum == idxsec X+ && sec->pe_comdat_auxent.x_scnlen X+ && sec->pe_comdat_auxent.x_comdat != IMAGE_COMDAT_SELECT_ASSOCIATIVE X+ && (isym.n_sclass == C_EXT || isym.n_sclass == C_STAT) X+ /*&& isym.n_type == T_NULL*/ ) X+ { X+ char buf[SYMNMLEN + 1]; X+ const char *symname; X+ char *csym; X+ X+ if (sec->pe_comdat_sym_name) X+ /* debug */ X+ abort (); X+ symname = _bfd_coff_internal_syment_name (abfd, &isym, buf); X+ if (symname == NULL) X+ abort (); X+ X+ csym = bfd_alloc (abfd, strlen (symname) + 1); X+ if (!csym) X+ abort (); X+ strcpy (csym, symname); X+ sec->pe_comdat_sym_name = csym; X+ } X+#endif X X esym += (isym.n_numaux + 1) * SYMESZ; X } XIndex: ../bfd/coffgen.c X@@ -139,7 +139,8 @@ X return_section->lineno_count = hdr->s_nlnno; X return_section->userdata = NULL; X return_section->next = (asection *) NULL; X- return_section->flags = bfd_coff_styp_to_sec_flags_hook (abfd, hdr, name); X+ return_section->flags = bfd_coff_styp_to_sec_flags_hook (abfd, hdr, name, X+ return_section); X X return_section->target_index = target_index; X XIndex: ../bfd/libcoff.h X@@ -659,7 +659,8 @@ X flagword (*_bfd_styp_to_sec_flags_hook) PARAMS (( X bfd *abfd, X PTR internal_scnhdr, X- const char *name)); X+ const char *name, X+ asection *sec)); X void (*_bfd_set_alignment_hook) PARAMS (( X bfd *abfd, X asection *sec, X@@ -803,8 +804,8 @@ X #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\ X ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook) (abfd, filehdr, aouthdr)) X X-#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name)\ X- ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook) (abfd, scnhdr, name)) X+#define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, sec)\ X+ ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook) (abfd, scnhdr, name, sec)) X X #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\ X ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr)) END-of-patches/patch-bb echo x - patches/patch-bc sed 's/^X//' >patches/patch-bc << 'END-of-patches/patch-bc' XIndex: ../bfd/coffcode.h X@@ -758,7 +758,7 @@ X X if (sec->pe_comdat_sym_name) X /* debug */ X- abort (); X+ break; /* abort (); */ X symname = _bfd_coff_internal_syment_name (abfd, &isym, buf); X if (symname == NULL) X abort (); XIndex: ../binutils/objdump.c X@@ -455,6 +455,15 @@ X if (! af && bf) X return -1; X X+#if 1 X+ /* Symbols that start with '.' might be section names, so sort them X+ after symbols that don't start with '.'. */ X+ if (an[0] == '.' && bn[0] != '.') X+ return 1; X+ if (an[0] != '.' && bn[0] == '.') X+ return -1; X+#endif X+ X /* Try to sort global symbols before local symbols before function X symbols before debugging symbols. */ X XIndex: ../opcodes/i386-dis.c X@@ -1232,6 +1232,14 @@ X (*info->fprintf_func) (info->stream, ","); X if (op_index[2] != -1) X (*info->print_address_func) ((bfd_vma) op_address[op_index[2]], info); X+#if 1 X+ /* XXX foo */ X+ else if (!strncmp(third, "*0x", 3) && !strchr(third, '(')) { X+ long add = strtoul(third + 1, (char **)0, 0); X+ (*info->fprintf_func) (info->stream, "*0x"); X+ (*info->print_address_func) (add, info); X+ } X+#endif X else X (*info->fprintf_func) (info->stream, "%s", third); X } END-of-patches/patch-bc echo x - patches/patch-coffcode3 sed 's/^X//' >patches/patch-coffcode3 << 'END-of-patches/patch-coffcode3' XIndex: ../bfd/coffcode.h X@@ -313,7 +313,7 @@ X #define STRING_SIZE_SIZE (4) X X static long sec_to_styp_flags PARAMS ((const char *, flagword)); X-static flagword styp_to_sec_flags PARAMS ((bfd *, PTR, const char *)); X+static flagword styp_to_sec_flags PARAMS ((bfd *, PTR, const char *, asection *)); X static boolean coff_bad_format_hook PARAMS ((bfd *, PTR)); X static boolean coff_new_section_hook PARAMS ((bfd *, asection *)); X static boolean coff_set_arch_mach_hook PARAMS ((bfd *, PTR)); END-of-patches/patch-coffcode3 echo x - patches/patch-coffgen7 sed 's/^X//' >patches/patch-coffgen7 << 'END-of-patches/patch-coffgen7' XIn objdump, show weak COFF symbols' AUX records: X XIndex: ../bfd/coffgen.c X@@ -2050,6 +2050,13 @@ X case C_FILE: X fprintf (file, "File "); X break; X+#if 1 X+ case C_NT_WEAK: X+ fprintf (file, "AUX tagndx %ld characteristics %ld", X+ tagndx, X+ auxp->u.auxent.x_sym.x_misc.x_fsize); X+ break; X+#endif X X case C_STAT: X if (combined->u.syment.n_type == T_NULL) END-of-patches/patch-coffgen7 echo x - patches/patch-cofflink-reloc2 sed 's/^X//' >patches/patch-cofflink-reloc2 << 'END-of-patches/patch-cofflink-reloc2' XIndex: ../bfd/cofflink.c X@@ -2393,6 +2393,7 @@ X bfd_vma val; X reloc_howto_type *howto; X bfd_reloc_status_type rstat; X+ int r_abs_p = 0; X X symndx = rel->r_symndx; X X@@ -2454,6 +2455,10 @@ X val = (h->root.u.def.value X + sec->output_section->vma X + sec->output_offset); X+#if 1 X+ if (bfd_is_abs_section(sec)) X+ r_abs_p = 1; X+#endif X } X X else if (! info->relocateable) X@@ -2671,7 +2671,7 @@ X if (info->base_file) X { X /* Emit a reloc if the backend thinks it needs it. */ X- if (sym && pe_data (output_bfd)->in_reloc_p (output_bfd, howto)) X+ if (sym && !r_abs_p && pe_data (output_bfd)->in_reloc_p (output_bfd, howto)) X { X /* Relocation to a symbol in a section which isn't X absolute. We output the address here to a file. END-of-patches/patch-cofflink-reloc2 echo x - patches/patch-cofflink4d sed 's/^X//' >patches/patch-cofflink4d << 'END-of-patches/patch-cofflink4d' X(Partly) handle weak COFF symbols (C_NT_WEAK): `If a definition of sym1 is Xlinked, then an external reference to the symbol is resolved normally. XIf a definition of sym1 is not linked, then all references to the Xweak external for sym1 refer to sym2 instead. The external symbol, sym2, Xmust always be linked; typically it is defined in the module containing Xthe weak reference to sym1.' sym2 is referred to by the tagndx AUX Xrecord entry; find it and copy the value... X XIndex: ../bfd/cofflink.c X@@ -26,6 +26,7 @@ X #include "libbfd.h" X #include "coff/internal.h" X #include "libcoff.h" X+#include "coff/i386.h" X X static boolean coff_link_add_object_symbols X PARAMS ((bfd *, struct bfd_link_info *)); X@@ -2678,6 +2690,81 @@ X X else if (! info->relocateable) X { X+#if 1 X+ if (h->root.type == bfd_link_hash_undefweak && X+ h->class == C_NT_WEAK && X+ h->numaux == 1 && X+ _bfd_coff_get_external_symbols (h->root.u.undef.abfd)) { X+ X+ struct internal_scnhdr *internal_s = (struct internal_scnhdr *) h->root.u.undef.abfd->sections; X+ const char *name = h->root.root.string; X+ bfd_byte *esym, *esymend; X+ int ndx = 0; X+ X+ esym = (bfd_byte *) obj_coff_external_syms (h->root.u.undef.abfd); X+ esymend = esym + obj_raw_syment_count (h->root.u.undef.abfd) * SYMESZ; X+ X+ while (esym < esymend) X+ { X+ struct internal_syment isym; X+ X+ bfd_coff_swap_sym_in (h->root.u.undef.abfd, (PTR) esym, (PTR) &isym); X+ X+ if (sizeof (internal_s->s_name) > SYMNMLEN) X+ { X+ /* This case implies that the matching symbol name X+ will be in the string table. */ X+ abort (); X+ } X+ X+ if (isym.n_sclass == C_NT_WEAK X+ && isym.n_numaux == 1) X+ { X+ char buf[SYMNMLEN + 1]; X+ const char *symname; X+ X+ symname = _bfd_coff_internal_syment_name (h->root.u.undef.abfd, &isym, buf); X+ if (symname == NULL) X+ abort (); X+ X+ if (strcmp (name, symname) == 0) X+ { X+ union internal_auxent aux; X+ X+ /* This is the weak symbol. */ X+ X+ bfd_coff_swap_aux_in (h->root.u.undef.abfd, X+ (PTR) (esym + SYMESZ), X+ isym.n_type, isym.n_sclass, X+ 0, isym.n_numaux, (PTR) &aux); X+ X+ if (aux.x_sym.x_tagndx.l) { X+ struct internal_syment csym; X+ struct coff_link_hash_entry *hc; X+ bfd_byte *s = esym + (aux.x_sym.x_tagndx.l-ndx) * SYMESZ; X+ X+ bfd_coff_swap_sym_in (h->root.u.undef.abfd, (PTR) s, (PTR) &csym); X+ symname = _bfd_coff_internal_syment_name (h->root.u.undef.abfd, &csym, buf); X+ if (hc = (struct coff_link_hash_entry *)bfd_hash_lookup (&info->hash->table, X+ symname, false, false)) { X+ h->root.u.def.value = hc->root.u.def.value; X+ h->root.u.def.section = hc->root.u.def.section; X+ h->root.type = bfd_link_hash_defined; X+ } X+ } X+ X+ break; X+ } X+ } X+ X+ esym += (isym.n_numaux + 1) * SYMESZ; X+ ndx += isym.n_numaux + 1; X+ } X+ } X+ /* (h->aux)->x_sym.x_misc.x_fsize X+ (h->aux)->x_sym.x_tagndx.l */ X+ else X+#endif X if (! ((*info->callbacks->undefined_symbol) X (info, h->root.root.string, input_bfd, input_section, X rel->r_vaddr - input_section->vma))) END-of-patches/patch-cofflink4d echo x - patches/patch-diff1 sed 's/^X//' >patches/patch-diff1 << 'END-of-patches/patch-diff1' XFreeBSD has setmode(3) but not O_BINARY... X XIndex: ../diff/cmp.c X@@ -208,7 +208,9 @@ X error (2, errno, "%s", file[i1]); X } X #if HAVE_SETMODE X+#ifdef O_BINARY X setmode (file_desc[i1], O_BINARY); X+#endif X #endif X } X END-of-patches/patch-diff1 echo x - patches/patch-diff2 sed 's/^X//' >patches/patch-diff2 << 'END-of-patches/patch-diff2' XIndex: ../diff/diff.c X@@ -556,8 +556,10 @@ X On Posix hosts, this has no effect. */ X #if HAVE_SETMODE X binary_I_O = 1; X+#ifdef O_BINARY X setmode (STDOUT_FILENO, O_BINARY); X #endif X+#endif X break; X X default: X@@ -1060,10 +1062,12 @@ X } X X #if HAVE_SETMODE X+#ifdef O_BINARY X if (binary_I_O) X for (i = 0; i <= 1; i++) X if (0 <= inf[i].desc) X setmode (inf[i].desc, O_BINARY); X+#endif X #endif X X /* Compare the files, if no error was found. */ END-of-patches/patch-diff2 echo x - patches/patch-diff3 sed 's/^X//' >patches/patch-diff3 << 'END-of-patches/patch-diff3' XIndex: ../diff/io.c X@@ -101,13 +101,16 @@ X { X /* Check first part of file to see if it's a binary file. */ X #if HAVE_SETMODE X+#ifdef O_BINARY X int oldmode = setmode (current->desc, O_BINARY); X #endif X+#endif X size_t n = read (current->desc, current->buffer, current->bufsize); X if (n == -1) X pfatal_with_name (current->name); X current->buffered_chars = n; X #if HAVE_SETMODE X+#ifdef O_BINARY X if (oldmode != O_BINARY) X { X if (lseek (current->desc, - (off_t) n, SEEK_CUR) == -1) X@@ -116,6 +119,7 @@ X current->buffered_chars = 0; X } X #endif X+#endif X return binary_file_p (current->buffer, n); X } X } X@@ -680,8 +684,10 @@ X if (appears_binary) X { X #if HAVE_SETMODE X+#ifdef O_BINARY X setmode (filevec[0].desc, O_BINARY); X setmode (filevec[1].desc, O_BINARY); X+#endif X #endif X return 1; X } END-of-patches/patch-diff3 echo x - patches/patch-dlltool1 sed 's/^X//' >patches/patch-dlltool1 << 'END-of-patches/patch-dlltool1' Xdlltool: s/_\?/\?/g in names, M$ compatibility... X XIndex: ../binutils/dlltool.c X@@ -1643,7 +1643,11 @@ X } X } X fprintf (f, "\t%s%s%s%s\t%s %d\n", ASM_RVA_BEFORE, X+#if 1 X+ (*exp->internal_name == '?' ? "" : ASM_PREFIX), X+#else X ASM_PREFIX, X+#endif X exp->internal_name, ASM_RVA_AFTER, ASM_C, exp->ordinal); X i++; X } X@@ -1725,10 +1729,17 @@ X /* We use a single underscore for MS compatibility, and a X double underscore for backward compatibility with old X cygwin releases. */ X+#if 1 X+ fprintf (f, "\t%s\t__imp%s%s\n", ASM_GLOBAL, (*exp->name == '?' ? "" : "_"), exp->name); X+ fprintf (f, "\t%s\t_imp_%s%s\n", ASM_GLOBAL, (*exp->name == '?' ? "" : "_"), exp->name); X+ fprintf (f, "__imp%s%s:\n", (*exp->name == '?' ? "" : "_"), exp->name); X+ fprintf (f, "_imp_%s%s:\n", (*exp->name == '?' ? "" : "_"), exp->name); X+#else X fprintf (f, "\t%s\t__imp_%s\n", ASM_GLOBAL, exp->name); X fprintf (f, "\t%s\t_imp__%s\n", ASM_GLOBAL, exp->name); X fprintf (f, "__imp_%s:\n", exp->name); X fprintf (f, "_imp__%s:\n", exp->name); X+#endif X fprintf (f, "\t%s\t%s\n", ASM_LONG, exp->name); X } X } X@@ -1971,6 +1982,10 @@ X char *copy = xmalloc (len +1 ); X strcpy (copy, ASM_PREFIX); X strcat (copy, prefix); X+#if 1 X+ if (*copy && *name == '?' && copy[strlen(copy)-1] == '_') X+ copy[strlen(copy)-1] = '\0'; X+#endif X strcat (copy, name); X return copy; X } END-of-patches/patch-dlltool1 echo x - patches/patch-edata11 sed 's/^X//' >patches/patch-edata11 << 'END-of-patches/patch-edata11' XLocate a .edata section even if it is hidden inside .rdata... X XIndex: ../bfd/coffgen.c X@@ -220,6 +221,27 @@ X bfd_coff_swap_scnhdr_in (abfd, X (PTR) (external_sections + i * scnhsz), X (PTR) & tmp); X+#if 1 X+ if (!strcmp ((abfd->xvec)->name, "pei-i386") && X+ !strcmp (tmp.s_name, ".rdata") && X+ abfd->tdata.pe_obj_data->pe_opthdr.DataDirectory[0].VirtualAddress + (abfd->tdata.pe_obj_data)->pe_opthdr.ImageBase > tmp.s_vaddr && X+ abfd->tdata.pe_obj_data->pe_opthdr.DataDirectory[0].VirtualAddress + (abfd->tdata.pe_obj_data)->pe_opthdr.ImageBase + abfd->tdata.pe_obj_data->pe_opthdr.DataDirectory[0].Size <= tmp.s_vaddr + tmp.s_size) { X+ /* msvc4(?) now hides .edata at the end of .rdata... X+ * fake it . X+ */ X+ struct internal_scnhdr tmp2 = tmp; X+ X+ tmp2.s_vaddr = abfd->tdata.pe_obj_data->pe_opthdr.DataDirectory[0].VirtualAddress + (abfd->tdata.pe_obj_data)->pe_opthdr.ImageBase; X+ tmp.s_paddr = tmp.s_size = tmp2.s_vaddr - tmp.s_vaddr; X+ tmp2.s_size -= tmp2.s_vaddr - tmp.s_vaddr; X+ tmp2.s_paddr -= tmp2.s_vaddr - tmp.s_vaddr; X+ tmp2.s_scnptr += tmp2.s_vaddr - tmp.s_vaddr; X+ strcpy (tmp2.s_name, ".edata"); X+ /* XX nscns + 1? */ X+ if (! make_a_section_from_file (abfd, &tmp2, nscns + 1)) X+ goto fail; X+ } X+#endif X if (! make_a_section_from_file (abfd, &tmp, i + 1)) X goto fail; X } END-of-patches/patch-edata11 echo x - patches/patch-gas-sym sed 's/^X//' >patches/patch-gas-sym << 'END-of-patches/patch-gas-sym' XAllow '?' in symbols, M$ uses them a lot in C++ mangled names... X XIndex: ../gas/read.c X@@ -232,6 +232,10 @@ X X if (flag_mri) X lex_type['?'] = 3; X+#if 1 X+ /* M$ too.. */ X+ lex_type['?'] = 3; X+#endif X } X X /* set up pseudo-op tables */ END-of-patches/patch-gas-sym echo x - patches/patch-gas-sym2 sed 's/^X//' >patches/patch-gas-sym2 << 'END-of-patches/patch-gas-sym2' XIndex: ../gas/config/tc-i386.c X@@ -630,6 +630,10 @@ X digit_chars['-'] = '-'; X identifier_chars['_'] = '_'; X identifier_chars['.'] = '.'; X+#if 1 X+ /* M$ .. */ X+ operand_chars['?'] = '?'; X+#endif X X for (p = operand_special_chars; *p != '\0'; p++) X operand_chars[(unsigned char) *p] = *p; END-of-patches/patch-gas-sym2 echo x - patches/patch-gccp1 sed 's/^X//' >patches/patch-gccp1 << 'END-of-patches/patch-gccp1' XThis is my `solution' to the fhandler* duplicate symbol problem: XM$ apparently uses comdat sections differently from gcc; only compare Xthe comdat symbols if the object was not compiled by gcc... X XIndex: ../bfd/bfd-in2.h X@@ -2484,6 +2484,9 @@ X /* Used by the application to hold private data*/ X PTR usrdata; X X+#if 1 X+ boolean gcc_compiled; X+#endif X /* Where all the allocated stuff under this BFD goes. This is a X struct objalloc *, but we use PTR to avoid requiring the inclusion of X objalloc.h. */ END-of-patches/patch-gccp1 echo x - patches/patch-gccp2 sed 's/^X//' >patches/patch-gccp2 << 'END-of-patches/patch-gccp2' XIndex: ../bfd/cofflink.c X@@ -338,6 +339,17 @@ X X bfd_coff_swap_sym_in (abfd, (PTR) esym, (PTR) &sym); X X+#if 1 X+ if (sym.n_sclass == C_LABEL) X+ { X+ const char *name; X+ char buf[SYMNMLEN + 1]; X+ X+ name = _bfd_coff_internal_syment_name (abfd, &sym, buf); X+ if (!strncmp(name, "gcc", 3) && strstr(name+3, "_compiled.")) X+ abfd->gcc_compiled = true; X+ } X+#endif X if (sym.n_sclass == C_EXT X || sym.n_sclass == C_WEAKEXT X || (obj_pe (abfd) && sym.n_sclass == C_NT_WEAK) END-of-patches/patch-gccp2 echo x - patches/patch-gccp3c sed 's/^X//' >patches/patch-gccp3c << 'END-of-patches/patch-gccp3c' XIndex: ../ld/ldlang.c X@@ -765,7 +765,14 @@ X X for (l = sec_link_once_list; l != NULL; l = l->next) X { X+#if 1 X+ if (strcmp (name, bfd_get_section_name (l->sec->owner, l->sec)) == 0 X+ && (l->sec->owner->gcc_compiled || sec->owner->gcc_compiled X+ || (!(l->sec->pe_comdat_sym_name)) || (!(sec->pe_comdat_sym_name)) X+ || (strcmp (l->sec->pe_comdat_sym_name, sec->pe_comdat_sym_name) == 0))) X+#else X if (strcmp (name, bfd_get_section_name (l->sec->owner, l->sec)) == 0) X+#endif X { X /* The section has already been linked. See if we should X issue a warning. */ END-of-patches/patch-gccp3c echo x - patches/patch-man1dir1 sed 's/^X//' >patches/patch-man1dir1 << 'END-of-patches/patch-man1dir1' XMove a few *.1 from man to man/man1, there a still some left tho: X X-rw-r--r-- 1 root bin 9186 Feb 20 20:16 bison.1 X-rw-r--r-- 1 root bin 104809 Feb 20 20:18 flex.1 X-rw-r--r-- 1 root bin 18473 Feb 20 20:14 i586-cygwin32-g++.1 X-rw-r--r-- 1 root bin 7671 Feb 20 20:18 make.1 X XIndex: ../gcc/Makefile.in X@@ -290,7 +290,7 @@ X build_exeext = @build_exeext@ X X # Directory in which to put man pages. X-mandir = @mandir@/man1 X+man1dir = @mandir@/man1 X # Directory in which to find other cross-compilation tools and headers. X # Used in install-cross. X tooldir = $(exec_prefix)/$(target_alias) X@@ -2335,12 +2335,12 @@ X -if [ -d $(tooldir) ] ; then true ; else mkdir $(tooldir) ; chmod a+rx $(tooldir) ; fi X -if [ -d $(assertdir) ] ; then true ; else mkdir $(assertdir) ; chmod a+rx $(assertdir) ; fi X -if [ -d $(infodir) ] ; then true ; else mkdir $(infodir) ; chmod a+rx $(infodir) ; fi X-# We don't use mkdir -p to create the parents of mandir, X+# We don't use mkdir -p to create the parents of man1dir, X # because some systems don't support it. X-# Instead, we use this technique to create the immediate parent of mandir. X- -parent=`echo $(mandir)|sed -e 's@/[^/]*$$@@'`; \ X+# Instead, we use this technique to create the immediate parent of man1dir. X+ -parent=`echo $(man1dir)|sed -e 's@/[^/]*$$@@'`; \ X if [ -d $$parent ] ; then true ; else mkdir $$parent ; chmod a+rx $$parent ; fi X- -if [ -d $(mandir) ] ; then true ; else mkdir $(mandir) ; chmod a+rx $(mandir) ; fi X+ -if [ -d $(man1dir) ] ; then true ; else mkdir $(man1dir) ; chmod a+rx $(man1dir) ; fi X X # Install the compiler executables built during cross compilation. X install-common: native installdirs $(EXTRA_PARTS) lang.install-common X@@ -2436,17 +2436,17 @@ X # Install the man pages. X install-man: installdirs $(srcdir)/gcc.1 $(srcdir)/cccp.1 lang.install-man X -if [ -f gcc-cross$(exeext) ] ; then \ X- rm -f $(mandir)/$(GCC_CROSS_NAME)$(manext); \ X- $(INSTALL_DATA) $(srcdir)/gcc.1 $(mandir)/$(GCC_CROSS_NAME)$(manext); \ X- chmod a-x $(mandir)/$(GCC_CROSS_NAME)$(manext); \ X+ rm -f $(man1dir)/$(GCC_CROSS_NAME)$(manext); \ X+ $(INSTALL_DATA) $(srcdir)/gcc.1 $(man1dir)/$(GCC_CROSS_NAME)$(manext); \ X+ chmod a-x $(man1dir)/$(GCC_CROSS_NAME)$(manext); \ X else \ X- rm -f $(mandir)/$(GCC_INSTALL_NAME)$(manext); \ X- $(INSTALL_DATA) $(srcdir)/gcc.1 $(mandir)/$(GCC_INSTALL_NAME)$(manext); \ X- chmod a-x $(mandir)/$(GCC_INSTALL_NAME)$(manext); \ X- fi X- -rm -f $(mandir)/cccp$(manext) X- -$(INSTALL_DATA) $(srcdir)/cccp.1 $(mandir)/cccp$(manext) X- -chmod a-x $(mandir)/cccp$(manext) X+ rm -f $(man1dir)/$(GCC_INSTALL_NAME)$(manext); \ X+ $(INSTALL_DATA) $(srcdir)/gcc.1 $(man1dir)/$(GCC_INSTALL_NAME)$(manext); \ X+ chmod a-x $(man1dir)/$(GCC_INSTALL_NAME)$(manext); \ X+ fi X+ -rm -f $(man1dir)/cccp$(manext) X+ -$(INSTALL_DATA) $(srcdir)/cccp.1 $(man1dir)/cccp$(manext) X+ -chmod a-x $(man1dir)/cccp$(manext) X X # Install the library. X install-libgcc: libgcc.a installdirs X@@ -2544,11 +2544,11 @@ X -rm -rf $(bindir)/protoize$(exeext) X -rm -rf $(bindir)/unprotoize$(exeext) X -rm -rf $(bindir)/gcov$(exeext) X- -rm -rf $(mandir)/$(GCC_INSTALL_NAME)$(manext) X- -rm -rf $(mandir)/$(GCC_CROSS_NAME)$(manext) X- -rm -rf $(mandir)/cccp$(manext) X- -rm -rf $(mandir)/protoize$(manext) X- -rm -rf $(mandir)/unprotoize$(manext) X+ -rm -rf $(man1dir)/$(GCC_INSTALL_NAME)$(manext) X+ -rm -rf $(man1dir)/$(GCC_CROSS_NAME)$(manext) X+ -rm -rf $(man1dir)/cccp$(manext) X+ -rm -rf $(man1dir)/protoize$(manext) X+ -rm -rf $(man1dir)/unprotoize$(manext) X -rm -f $(infodir)/cpp.info* $(infodir)/gcc.info* X # X # These targets are for the dejagnu testsuites. The file site.exp END-of-patches/patch-man1dir1 echo x - patches/patch-peicode-idata5a sed 's/^X//' >patches/patch-peicode-idata5a << 'END-of-patches/patch-peicode-idata5a' XUse the position of the Import Directory stored in the Data Directory... X XIndex: ../bfd/peicode.h X@@ -1292,11 +1292,25 @@ X ; X } X X+#if 1 X+ if (extra->DataDirectory[1].VirtualAddress && X+ extra->DataDirectory[1].Size) { X+ bfd_byte *vdir = data+extra->DataDirectory[1].VirtualAddress+adj; X+ hint_addr = bfd_get_32(abfd, vdir+i); X+ time_stamp = bfd_get_32(abfd, vdir+i+4); X+ forward_chain = bfd_get_32(abfd, vdir+i+8); X+ dll_name = bfd_get_32(abfd, vdir+i+12); X+ first_thunk = bfd_get_32(abfd, vdir+i+16); X+ } else { X+#endif X hint_addr = bfd_get_32(abfd, data+i); X time_stamp = bfd_get_32(abfd, data+i+4); X forward_chain = bfd_get_32(abfd, data+i+8); X dll_name = bfd_get_32(abfd, data+i+12); X first_thunk = bfd_get_32(abfd, data+i+16); X+#if 1 X+ } X+#endif X X fprintf(file, "%08lx %08lx %08lx %08lx %08lx\n", X hint_addr, END-of-patches/patch-peicode-idata5a echo x - patches/patch-peicode2 sed 's/^X//' >patches/patch-peicode2 << 'END-of-patches/patch-peicode2' XIn objdump, skip bad pointer values instead of dumping core... X XIndex: ../bfd/peicode.h X@@ -1410,7 +1410,16 @@ X X for (j = 0; j < stop; j += 4) X { X+#if 1 X+ unsigned long member; X+ if (data + idx + j > data + datasize || X+ data + idx + j < data) { X+ fprintf(file, "\t[Bogus offset %04lx, skipping]\n", idx); X+ break; X+ } X+#else X unsigned long member = bfd_get_32 (abfd, data + idx + j); X+#endif X X if (member == 0) X break; X@@ -1454,6 +1463,18 @@ X bfd_vma hint_member = 0; X bfd_vma iat_member; X X+#if 1 X+ if (data + idx + j > data + datasize || X+ data + idx + j < data) { X+ fprintf(file, "\t[Bogus offset %04lx, skipping]\n", idx); X+ break; X+ } X+ if (data + idx2 + j > data + datasize || X+ data + idx2 + j < data) { X+ fprintf(file, "\t[Bogus offset %04lx, skipping]\n", idx2); X+ break; X+ } X+#endif X if (hint_addr != 0) X hint_member = bfd_get_32 (abfd, data + idx + j); X iat_member = bfd_get_32 (abfd, data + idx2 + j); X@@ -1884,8 +1905,18 @@ X size = bfd_get_32(abfd, data+i+4); X number = (size - 8) / 2; X X+#if 1 X+ if (size == 0 || i + size > stop) X+#else X if (size == 0) X+#endif X { X+#if 1 X+ if (i + size > stop) X+ fprintf (file, X+ "\n[Bogus size, ignoring:\n\tVirtual Address: %08lx Chunk size %ld (0x%lx) Number of fixups %ld]\n", X+ virtual_address, size, size, number); X+#endif X break; X } X X@@ -1900,7 +1932,15 @@ X int off = e & 0x0FFF; X X if (t > 5) X+#if 1 X+ fprintf(file, X+ "\treloc %4d offset %4x [%4lx] [type %d]\n", X+ j, off, (long) (off + virtual_address), t); X+ else X+#else X+ if (t > 5) X abort(); X+#endif X X fprintf(file, X _("\treloc %4d offset %4x [%4lx] %s\n"), END-of-patches/patch-peicode2 echo x - patches/patch-peicode3 sed 's/^X//' >patches/patch-peicode3 << 'END-of-patches/patch-peicode3' XIndex: ../bfd/peicode.h X@@ -1462,6 +1462,13 @@ X if (time_stamp != 0 X && first_thunk != 0 X && first_thunk != hint_addr) X+#if 1 X+ if (data + first_thunk + adj + j > data + datasize || X+ data + first_thunk + adj + j < data) X+ fprintf (file, "\t[Bogus offset %04lx, skipping]", X+ data + first_thunk + adj + j); X+ else X+#endif X fprintf (file, "\t%04lx", X bfd_get_32 (abfd, data + first_thunk + adj + j)); X END-of-patches/patch-peicode3 echo x - patches/patch-peicode3a sed 's/^X//' >patches/patch-peicode3a << 'END-of-patches/patch-peicode3a' XIndex: ../bfd/peicode.h X@@ -1414,6 +1414,12 @@ X X /* the image base is present in the section->vma */ X dll = (char *) data + dll_name + adj; X+#if 1 X+ if (!dll || dll_name + adj > datasize || X+ dll_name + adj < 0) X+ fprintf(file, _("\n\tDLL Name: (bogus offset %04lx, skipping)\n"), dll_name); X+ else X+#endif X fprintf(file, _("\n\tDLL Name: %s\n"), dll); X X if (hint_addr != 0) END-of-patches/patch-peicode3a echo x - patches/patch-peicode4a sed 's/^X//' >patches/patch-peicode4a << 'END-of-patches/patch-peicode4a' XIndex: ../bfd/peicode.h X@@ -1437,6 +1437,7 @@ X fprintf(file, "\t[Bogus offset %04lx, skipping]\n", idx); X break; X } X+ member = bfd_get_32 (abfd, data + idx + j); X #else X unsigned long member = bfd_get_32 (abfd, data + idx + j); X #endif END-of-patches/patch-peicode4a echo x - patches/patch-peicode77 sed 's/^X//' >patches/patch-peicode77 << 'END-of-patches/patch-peicode77' XIndex: ../bfd/peicode.h X@@ -1452,6 +1452,13 @@ X int ordinal; X char *member_name; X X+#if 1 X+ if (data + member + adj > data + datasize || X+ data + member + adj < data) { X+ fprintf(file, "\t[Bogus offset %04lx, skipping]\n", member + adj); X+ break; X+ } X+#endif X ordinal = bfd_get_16 (abfd, data + member + adj); X member_name = (char *) data + member + adj + 2; X fprintf (file, "\t%04lx\t %4d %s", X@@ -1526,6 +1533,13 @@ X } X else X { X+#if 1 X+ if (data + iat_member + adj > data + datasize || X+ data + iat_member + adj < data) { X+ fprintf(file, "\t[Bogus offset %04lx, skipping]\n", iat_member + adj); X+ break; X+ } X+#endif X ordinal = bfd_get_16(abfd, X data + iat_member + adj); X member_name = (char *) data + iat_member + adj + 2; END-of-patches/patch-peicode77 echo x - patches/patch-readelf1 sed 's/^X//' >patches/patch-readelf1 << 'END-of-patches/patch-readelf1' XInclude after , avoiding missing definitions Xon FreeBSD... X XIndex: ../binutils/readelf.c X@@ -23,8 +23,8 @@ X X X #include X-#include X #include X+#include X #include X X #include "bfd.h" END-of-patches/patch-readelf1 echo x - patches/patch-sectionsym1 sed 's/^X//' >patches/patch-sectionsym1 << 'END-of-patches/patch-sectionsym1' XIgnore multiple definitions of .idata$ section symbols... X XIndex: ../bfd/cofflink.c X@@ -392,6 +392,17 @@ X || (obj_pe (abfd) && sym.n_sclass == C_NT_WEAK)) X flags = BSF_WEAK; X X+#if 1 X+ /* The section symbols for the .idata$ sections have class 0x68 X+ (C_SECTION), which MS documentation indicates is a section X+ symbol. Unfortunately, the value field in the symbol is simply a X+ copy of the .idata section's flags rather than something useful. X+ Pass down the flag BSF_SECTION_SYM so that we can ignore X+ multiple definitions of these symbols. */ X+ X+ if (sym.n_sclass == C_SECTION) X+ flags = BSF_SECTION_SYM; X+#endif X if (! (bfd_coff_link_add_one_symbol X (info, abfd, name, flags, section, value, X (const char *) NULL, copy, false, END-of-patches/patch-sectionsym1 echo x - patches/patch-sectionsym2 sed 's/^X//' >patches/patch-sectionsym2 << 'END-of-patches/patch-sectionsym2' XIndex: ../bfd/linker.c X@@ -1772,6 +1772,14 @@ X && bfd_is_abs_section (section) X && value == mval) X break; X+#if 1 X+ /* Ignore a redefinition of a section symbol to the same X+ value; it's harmless. */ X+ if (h->type == bfd_link_hash_defined X+ && flags == BSF_SECTION_SYM X+ && value == mval) X+ break; X+#endif X X if (! ((*info->callbacks->multiple_definition) X (info, h->root.string, msec->owner, msec, mval, abfd, END-of-patches/patch-sectionsym2 echo x - patches/patch-windres02 sed 's/^X//' >patches/patch-windres02 << 'END-of-patches/patch-windres02' XWindres fix posted to the list... X XIndex: ../binutils/resbin.c X*************** X*** 2255,2265 **** X length += 6; X vilen += 6; X vslen += 6; X vsslen = 6; X X- put_16 (big_endian, 0, vssd->data + 2); X put_16 (big_endian, 1, vssd->data + 4); X X *pp = vssd; X pp = &vssd->next; X X--- 2255,2264 ---- X*************** X*** 2279,2288 **** X--- 2278,2290 ---- X *pp = unicode_to_bin (vs->value, big_endian); X length += (*pp)->length; X vilen += (*pp)->length; X vslen += (*pp)->length; X vsslen += (*pp)->length; X+ X+ put_16 (big_endian, (*pp)->length, vssd->data + 2); X+ X pp = &(*pp)->next; X X put_16 (big_endian, vsslen, vssd->data); X } X END-of-patches/patch-windres02 echo x - Makefile sed 's/^X//' >Makefile << 'END-of-Makefile' X# New ports collection makefile for: GNU-WIN32 cross compiler X# Version required: b20.1 X# Whom: Juergen Lock X# Date created: Sun Feb 7 02:25:44 MET 1999 X# X# $Id: Makefile,v 1.1 1999/02/06 22:47:40 nox Exp $ X XDISTNAME= gnu-win32 XPKGNAME= gnu_win32-b20.1 XCATEGORIES= devel XMASTER_SITES= ftp://go.cygnus.com/pub/sourceware.cygnus.com/cygwin/cygwin-b20/ XDISTFILES= dev-src.tar.bz2 X XMAINTAINER= Juergen Lock X XBUILD_DEPENDS= bzip2:${PORTSDIR}/archivers/bzip2 X XDIST_SUBDIR= ${PKGNAME} XWRKSRC= ${WRKDIR}/${DISTNAME}/src/CROSS X X#MAN1= byacc.1 \ X# i586-cygwin32-addr2line.1 \ X# i586-cygwin32-ar.1 \ X# i586-cygwin32-as.1 \ X# i586-cygwin32-c++filt.1 \ X# i586-cygwin32-ld.1 \ X# i586-cygwin32-nlmconv.1 \ X# i586-cygwin32-nm.1 \ X# i586-cygwin32-objcopy.1 \ X# i586-cygwin32-objdump.1 \ X# i586-cygwin32-ranlib.1 \ X# i586-cygwin32-size.1 \ X# i586-cygwin32-strings.1 \ X# i586-cygwin32-strip.1 \ X# patch.1 \ X# runtest.1 \ X# send-pr.1 X#man/i586-cygwin32-g++.1 X#man/i586-cygwin32-gcc.1 X Xdo-extract: X.if !defined(NO_WRKDIR) X @${RM} -rf ${WRKSRC} X @${MKDIR} ${WRKSRC} X.endif X bzip2 -dc ${DISTDIR}/${DIST_SUBDIR}/dev-src.tar.bz2 | tar -C ${WRKDIR}/${DISTNAME} -xf - X X# needs current /bin/sh later 12/14/96(?) X# + 2.2 /usr/bin/make (bsd.port.mk) Xdo-configure: X# (cd ${WRKSRC}; CC=gcc ../configure --target=i386-unknown-cygwin32 --build=i386-unknown-freebsd2.1.7 ) X (cd ${WRKSRC}; CC=gcc ../configure --target=i586-cygwin32 --build=i386-unknown-freebsd2.1.7 --prefix=${PREFIX} ) XCC=gcc X##HAS_CONFIGURE=yes X##GNU_CONFIGURE=yes X# bmake forget newlib/libm/libm.a rule?? XUSE_GMAKE=yes X# writable for configure(?) XPREFIX=${LOCALBASE}/gnu-win32 X XAR=ar XRANLIB=ranlib X# ?? X#CONFIGURE_ARGS=--target=i386-unknown-cygwin32 --build=i386-unknown-freebsd X##CONFIGURE_ARGS=--target=i386-unknown-cygwin32 --build=i386-unknown-freebsd2.1.7 -v X X# XXX missing -I.s ?? Xpre-configure: X -ln -s ../Makefile.in ${WRKSRC} X# -ln -s ../config.guess ${WRKSRC} X# -ln -s ../configure ${WRKSRC} X# -ln -s ../configure.in ${WRKSRC} X# -ln -s ../config.sub ${WRKSRC} X# -ln -s ../move-if-change ${WRKSRC} X X##post-configure: X## cd ${WRKSRC}/gcc; gmake installdirs X# -ln -s ../install-sh ${WRKSRC}/i386-unknown-cygwin32 X# -ln -s ../config.sub ${WRKSRC}/i386-unknown-cygwin32 X# -ln -s newlib/configure.host ${WRKSRC}/i386-unknown-cygwin32 X# -ln -s ../libstdc++ ${WRKSRC}/i386-unknown-cygwin32/winsup X##post-configure: X## cp -pi ${WRKSRC}/gcc/ginclude/stddef.h ${WRKSRC}/gcc X## cp -pi ${WRKSRC}/gcc/cp/inc/new ${WRKSRC}/gcc X## cp -pi ${WRKSRC}/gcc/cp/inc/typeinfo ${WRKSRC}/gcc X## cp -pi ${WRKSRC}/gcc/cp/inc/exception ${WRKSRC}/gcc X X# XXX restart? X# -ln -s ../../libstdc++/exception ${WRKSRC}/i386-unknown-cygwin32/libstdc++ X# -ln -s ../../../libg++/src/new.h ${WRKSRC}/i386-unknown-cygwin32/libg++/src X# -ln -s ../../install.sh ${WRKSRC}/i386-unknown-cygwin32/winsup X# -ln -s ../../config.sub ${WRKSRC}/i386-unknown-cygwin32/winsup X# -ln -s ../../../../newlib/libc/include/getopt.h ${WRKSRC}/i386-unknown-cygwin32/newlib/libc/include X# -ln -s ../../../../newlib/libc/include/stdarg.h ${WRKSRC}/i386-unknown-cygwin32/newlib/libc/include X X.include END-of-Makefile echo c - files/ mkdir -p files/ > /dev/null 2>&1 echo x - files/md5 sed 's/^X//' >files/md5 << 'END-of-files/md5' XMD5 (gnu_win32-b20.1/dev-src.tar.bz2) = c696bc4985a38fc824419a4ca9cd1405 END-of-files/md5 echo c - pkg/ mkdir -p pkg/ > /dev/null 2>&1 echo x - pkg/COMMENT sed 's/^X//' >pkg/COMMENT << 'END-of-pkg/COMMENT' XThe Cygnus GNU-WIN32 distribution built as cross-compiler END-of-pkg/COMMENT echo x - pkg/DESCR sed 's/^X//' >pkg/DESCR << 'END-of-pkg/DESCR' X[From winsup/doc/overview*:] X XThe Cygwin tools are ports of the popular GNU development Xtools for Windows NT and 9x. They run thanks to the Cygwin library Xwhich provides the UNIX system calls and environment these programs Xexpect. X XWith these tools installed, it is possible to write Win32 Xconsole or GUI applications that make use of the standard Microsoft XWin32 API and/or the Cygwin API. As a result, it is possible to Xeasily port many significant Unix programs without the need for Xextensive changes to the source code. This includes configuring and Xbuilding most of the available GNU software (including the development Xtools included with the Cygwin distributions). Even if the Xcompiler tools are of little to no use to you, you may have Xinterest in the many standard Unix utilities. They can be used both Xfrom the bash shell (provided) or from the command.com. END-of-pkg/DESCR echo x - pkg/PLIST sed 's/^X//' >pkg/PLIST << 'END-of-pkg/PLIST' X AT cd /usr/local/gnu-win32 X AT owner bin X AT mode 755 Xbin/bison Xbin/byacc Xbin/cmp Xbin/cygcheck.exe Xbin/cygpath.exe Xbin/cygwin1.dll Xbin/diff Xbin/diff3 Xbin/flex Xbin/flex++ Xbin/gcov Xbin/i586-cygwin32-addr2line Xbin/i586-cygwin32-ar Xbin/i586-cygwin32-as Xbin/i586-cygwin32-c++ Xbin/i586-cygwin32-c++filt Xbin/i586-cygwin32-dlltool Xbin/i586-cygwin32-dllwrap Xbin/i586-cygwin32-g++ Xbin/i586-cygwin32-gasp Xbin/i586-cygwin32-gcc Xbin/i586-cygwin32-ld Xbin/i586-cygwin32-nm Xbin/i586-cygwin32-objcopy Xbin/i586-cygwin32-objdump Xbin/i586-cygwin32-protoize Xbin/i586-cygwin32-ranlib Xbin/i586-cygwin32-readelf Xbin/i586-cygwin32-size Xbin/i586-cygwin32-strings Xbin/i586-cygwin32-strip Xbin/i586-cygwin32-unprotoize Xbin/i586-cygwin32-windres Xbin/install-sid Xbin/kill.exe Xbin/make Xbin/makeinfo Xbin/mkgroup.exe Xbin/mkpasswd.exe Xbin/mount.exe Xbin/patch Xbin/ps.exe Xbin/runtest Xbin/sdiff Xbin/send-pr Xbin/umount.exe Xi586-cygwin32/bin/ar Xi586-cygwin32/bin/as Xi586-cygwin32/bin/dlltool Xi586-cygwin32/bin/ld Xi586-cygwin32/bin/nm Xi586-cygwin32/bin/ranlib Xi586-cygwin32/bin/strip Xi586-cygwin32/include/Windows32/ASCIIFunctions.h Xi586-cygwin32/include/Windows32/Base.h Xi586-cygwin32/include/Windows32/CommonFunctions.h Xi586-cygwin32/include/Windows32/Defines.h Xi586-cygwin32/include/Windows32/Errors.h Xi586-cygwin32/include/Windows32/Functions.h Xi586-cygwin32/include/Windows32/Messages.h Xi586-cygwin32/include/Windows32/Sockets.h Xi586-cygwin32/include/Windows32/Structures.h Xi586-cygwin32/include/Windows32/UnicodeFunctions.h Xi586-cygwin32/include/_G_config.h Xi586-cygwin32/include/_ansi.h Xi586-cygwin32/include/_syslist.h Xi586-cygwin32/include/a.out.h Xi586-cygwin32/include/ar.h Xi586-cygwin32/include/arpa Xi586-cygwin32/include/arpa/ftp.h Xi586-cygwin32/include/arpa/inet.h Xi586-cygwin32/include/arpa/telnet.h Xi586-cygwin32/include/asm Xi586-cygwin32/include/asm/byteorder.h Xi586-cygwin32/include/asm/socket.h Xi586-cygwin32/include/asm/types.h Xi586-cygwin32/include/assert.h Xi586-cygwin32/include/cderr.h Xi586-cygwin32/include/commdlg.h Xi586-cygwin32/include/ctype.h Xi586-cygwin32/include/custcntl.h Xi586-cygwin32/include/cygwin/cygwin_dll.h Xi586-cygwin32/include/cygwin/icmp.h Xi586-cygwin32/include/cygwin/if.h Xi586-cygwin32/include/cygwin/in.h Xi586-cygwin32/include/cygwin/ip.h Xi586-cygwin32/include/cygwin/socket.h Xi586-cygwin32/include/cygwin/sockios.h Xi586-cygwin32/include/cygwin/types.h Xi586-cygwin32/include/cygwin/uio.h Xi586-cygwin32/include/cygwin/version.h Xi586-cygwin32/include/ddeml.h Xi586-cygwin32/include/direct.h Xi586-cygwin32/include/dirent.h Xi586-cygwin32/include/dlfcn.h Xi586-cygwin32/include/dlgs.h Xi586-cygwin32/include/errno.h Xi586-cygwin32/include/exceptions.h Xi586-cygwin32/include/fastmath.h Xi586-cygwin32/include/fcntl.h Xi586-cygwin32/include/features.h Xi586-cygwin32/include/getopt.h Xi586-cygwin32/include/grp.h Xi586-cygwin32/include/icmp.h Xi586-cygwin32/include/ieeefp.h Xi586-cygwin32/include/io.h Xi586-cygwin32/include/lastlog.h Xi586-cygwin32/include/limits.h Xi586-cygwin32/include/locale.h Xi586-cygwin32/include/machine Xi586-cygwin32/include/machine/fastmath.h Xi586-cygwin32/include/machine/ieeefp.h Xi586-cygwin32/include/machine/setjmp-dj.h Xi586-cygwin32/include/machine/setjmp.h Xi586-cygwin32/include/machine/time.h Xi586-cygwin32/include/machine/types.h Xi586-cygwin32/include/malloc.h Xi586-cygwin32/include/mapi.h Xi586-cygwin32/include/math.h Xi586-cygwin32/include/memory.h Xi586-cygwin32/include/mingw32/alloc.h Xi586-cygwin32/include/mingw32/assert.h Xi586-cygwin32/include/mingw32/conio.h Xi586-cygwin32/include/mingw32/ctype.h Xi586-cygwin32/include/mingw32/dir.h Xi586-cygwin32/include/mingw32/direct.h Xi586-cygwin32/include/mingw32/dirent.h Xi586-cygwin32/include/mingw32/dos.h Xi586-cygwin32/include/mingw32/errno.h Xi586-cygwin32/include/mingw32/excpt.h Xi586-cygwin32/include/mingw32/fcntl.h Xi586-cygwin32/include/mingw32/float.h Xi586-cygwin32/include/mingw32/io.h Xi586-cygwin32/include/mingw32/limits.h Xi586-cygwin32/include/mingw32/locale.h Xi586-cygwin32/include/mingw32/malloc.h Xi586-cygwin32/include/mingw32/math.h Xi586-cygwin32/include/mingw32/mem.h Xi586-cygwin32/include/mingw32/memory.h Xi586-cygwin32/include/mingw32/process.h Xi586-cygwin32/include/mingw32/setjmp.h Xi586-cygwin32/include/mingw32/share.h Xi586-cygwin32/include/mingw32/signal.h Xi586-cygwin32/include/mingw32/stdarg.h Xi586-cygwin32/include/mingw32/stddef.h Xi586-cygwin32/include/mingw32/stdio.h Xi586-cygwin32/include/mingw32/stdlib.h Xi586-cygwin32/include/mingw32/string.h Xi586-cygwin32/include/mingw32/sys Xi586-cygwin32/include/mingw32/sys/fcntl.h Xi586-cygwin32/include/mingw32/sys/file.h Xi586-cygwin32/include/mingw32/sys/locking.h Xi586-cygwin32/include/mingw32/sys/stat.h Xi586-cygwin32/include/mingw32/sys/time.h Xi586-cygwin32/include/mingw32/sys/timeb.h Xi586-cygwin32/include/mingw32/sys/types.h Xi586-cygwin32/include/mingw32/sys/unistd.h Xi586-cygwin32/include/mingw32/sys/utime.h Xi586-cygwin32/include/mingw32/tchar.h Xi586-cygwin32/include/mingw32/time.h Xi586-cygwin32/include/mingw32/unistd.h Xi586-cygwin32/include/mingw32/values.h Xi586-cygwin32/include/mingw32/varargs.h Xi586-cygwin32/include/mingw32/wchar.h Xi586-cygwin32/include/mntent.h Xi586-cygwin32/include/net Xi586-cygwin32/include/net/if.h Xi586-cygwin32/include/netdb.h Xi586-cygwin32/include/netinet Xi586-cygwin32/include/netinet/in.h Xi586-cygwin32/include/netinet/ip.h Xi586-cygwin32/include/netinet/ip_icmp.h Xi586-cygwin32/include/paths.h Xi586-cygwin32/include/process.h Xi586-cygwin32/include/pwd.h Xi586-cygwin32/include/reent.h Xi586-cygwin32/include/regdef.h Xi586-cygwin32/include/regexp.h Xi586-cygwin32/include/setjmp.h Xi586-cygwin32/include/shellapi.h Xi586-cygwin32/include/signal.h Xi586-cygwin32/include/stdio.h Xi586-cygwin32/include/stdlib.h Xi586-cygwin32/include/string.h Xi586-cygwin32/include/strings.h Xi586-cygwin32/include/sys/_types.h Xi586-cygwin32/include/sys/cdefs.h Xi586-cygwin32/include/sys/config.h Xi586-cygwin32/include/sys/cygwin.h Xi586-cygwin32/include/sys/dirent.h Xi586-cygwin32/include/sys/errno.h Xi586-cygwin32/include/sys/fcntl.h Xi586-cygwin32/include/sys/file.h Xi586-cygwin32/include/sys/ioctl.h Xi586-cygwin32/include/sys/mman.h Xi586-cygwin32/include/sys/mount.h Xi586-cygwin32/include/sys/param.h Xi586-cygwin32/include/sys/reent.h Xi586-cygwin32/include/sys/resource.h Xi586-cygwin32/include/sys/select.h Xi586-cygwin32/include/sys/signal.h Xi586-cygwin32/include/sys/smallprint.h Xi586-cygwin32/include/sys/socket.h Xi586-cygwin32/include/sys/stat-dj.h Xi586-cygwin32/include/sys/stat.h Xi586-cygwin32/include/sys/strace.h Xi586-cygwin32/include/sys/syslog.h Xi586-cygwin32/include/sys/sysmacros.h Xi586-cygwin32/include/sys/termio.h Xi586-cygwin32/include/sys/termios.h Xi586-cygwin32/include/sys/time.h Xi586-cygwin32/include/sys/timeb.h Xi586-cygwin32/include/sys/times.h Xi586-cygwin32/include/sys/ttychars.h Xi586-cygwin32/include/sys/types.h Xi586-cygwin32/include/sys/uio.h Xi586-cygwin32/include/sys/unistd.h Xi586-cygwin32/include/sys/utime.h Xi586-cygwin32/include/sys/utsname.h Xi586-cygwin32/include/sys/vfs.h Xi586-cygwin32/include/sys/wait.h Xi586-cygwin32/include/syslog.h Xi586-cygwin32/include/tchar.h Xi586-cygwin32/include/termio.h Xi586-cygwin32/include/termios.h Xi586-cygwin32/include/time.h Xi586-cygwin32/include/tzfile.h Xi586-cygwin32/include/unctrl.h Xi586-cygwin32/include/unistd.h Xi586-cygwin32/include/utime.h Xi586-cygwin32/include/utmp.h Xi586-cygwin32/include/wchar.h Xi586-cygwin32/include/winadvapi.h Xi586-cygwin32/include/winbase.h Xi586-cygwin32/include/wincon.h Xi586-cygwin32/include/windef.h Xi586-cygwin32/include/windows.h Xi586-cygwin32/include/windowsx.h Xi586-cygwin32/include/winerror.h Xi586-cygwin32/include/wingdi.h Xi586-cygwin32/include/winkernel.h Xi586-cygwin32/include/winnt.h Xi586-cygwin32/include/winreg.h Xi586-cygwin32/include/winsock.h Xi586-cygwin32/include/wintypes.h Xi586-cygwin32/include/winuser.h Xi586-cygwin32/include/winversion.h Xi586-cygwin32/lib/CRT_noglob.o Xi586-cygwin32/lib/crt0.o Xi586-cygwin32/lib/crt1.o Xi586-cygwin32/lib/crt2.o Xi586-cygwin32/lib/dllcrt1.o Xi586-cygwin32/lib/dllcrt2.o Xi586-cygwin32/lib/gcrt0.o Xi586-cygwin32/lib/ldscripts Xi586-cygwin32/lib/ldscripts/i386pe.x Xi586-cygwin32/lib/ldscripts/i386pe.xbn Xi586-cygwin32/lib/ldscripts/i386pe.xn Xi586-cygwin32/lib/ldscripts/i386pe.xr Xi586-cygwin32/lib/ldscripts/i386pe.xu Xi586-cygwin32/lib/libadvapi32.a Xi586-cygwin32/lib/libc.a Xi586-cygwin32/lib/libcap.a Xi586-cygwin32/lib/libcomctl32.a Xi586-cygwin32/lib/libcomdlg32.a Xi586-cygwin32/lib/libcrtdll.a Xi586-cygwin32/lib/libctl3d32.a Xi586-cygwin32/lib/libcygwin.a Xi586-cygwin32/lib/libdlcapi.a Xi586-cygwin32/lib/libg.a Xi586-cygwin32/lib/libgdi32.a Xi586-cygwin32/lib/libglaux.a Xi586-cygwin32/lib/libglu32.a Xi586-cygwin32/lib/libgmon.a Xi586-cygwin32/lib/libiberty.a Xi586-cygwin32/lib/libicmp.a Xi586-cygwin32/lib/libimm32.a Xi586-cygwin32/lib/libkernel32.a Xi586-cygwin32/lib/liblargeint.a Xi586-cygwin32/lib/liblz32.a Xi586-cygwin32/lib/libm.a Xi586-cygwin32/lib/libmapi32.a Xi586-cygwin32/lib/libmfcuia32.a Xi586-cygwin32/lib/libmgmtapi.a Xi586-cygwin32/lib/libmingw32.a Xi586-cygwin32/lib/libmoldname.a Xi586-cygwin32/lib/libmpr.a Xi586-cygwin32/lib/libmsacm32.a Xi586-cygwin32/lib/libmsvcrt.a Xi586-cygwin32/lib/libmsvcrt20.a Xi586-cygwin32/lib/libmsvcrt40.a Xi586-cygwin32/lib/libnddeapi.a Xi586-cygwin32/lib/libnetapi32.a Xi586-cygwin32/lib/libodbc32.a Xi586-cygwin32/lib/libodbccp32.a Xi586-cygwin32/lib/liboldnames.a Xi586-cygwin32/lib/libole32.a Xi586-cygwin32/lib/liboleaut32.a Xi586-cygwin32/lib/liboledlg.a Xi586-cygwin32/lib/libolepro32.a Xi586-cygwin32/lib/libopengl32.a Xi586-cygwin32/lib/libpenwin32.a Xi586-cygwin32/lib/libpkpd32.a Xi586-cygwin32/lib/librasapi32.a Xi586-cygwin32/lib/librpcdce4.a Xi586-cygwin32/lib/librpcndr.a Xi586-cygwin32/lib/librpcns4.a Xi586-cygwin32/lib/librpcrt4.a Xi586-cygwin32/lib/libscrnsave.a Xi586-cygwin32/lib/libshell32.a Xi586-cygwin32/lib/libsnmp.a Xi586-cygwin32/lib/libstdc++.a Xi586-cygwin32/lib/libsvrapi.a Xi586-cygwin32/lib/libtapi32.a Xi586-cygwin32/lib/libth32.a Xi586-cygwin32/lib/libthunk32.a Xi586-cygwin32/lib/liburl.a Xi586-cygwin32/lib/libuser32.a Xi586-cygwin32/lib/libuuid.a Xi586-cygwin32/lib/libvdmdbg.a Xi586-cygwin32/lib/libversion.a Xi586-cygwin32/lib/libvfw32.a Xi586-cygwin32/lib/libwin32spl.a Xi586-cygwin32/lib/libwinmm.a Xi586-cygwin32/lib/libwinspool.a Xi586-cygwin32/lib/libwinstrm.a Xi586-cygwin32/lib/libwow32.a Xi586-cygwin32/lib/libwsock32.a Xi586-cygwin32/lib/libwst.a Xinclude/FlexLexer.h Xinclude/ansidecl.h Xinclude/bfd.h Xinclude/bfdlink.h Xinclude/g++/PlotFile.h Xinclude/g++/SFile.h Xinclude/g++/algo.h Xinclude/g++/algobase.h Xinclude/g++/algorithm Xinclude/g++/alloc.h Xinclude/g++/builtinbuf.h Xinclude/g++/bvector.h Xinclude/g++/cassert Xinclude/g++/cctype Xinclude/g++/cerrno Xinclude/g++/cfloat Xinclude/g++/ciso646 Xinclude/g++/climits Xinclude/g++/clocale Xinclude/g++/cmath Xinclude/g++/complex Xinclude/g++/complex.h Xinclude/g++/csetjmp Xinclude/g++/csignal Xinclude/g++/cstdarg Xinclude/g++/cstddef Xinclude/g++/cstdio Xinclude/g++/cstdlib Xinclude/g++/cstring Xinclude/g++/ctime Xinclude/g++/cwchar Xinclude/g++/cwctype Xinclude/g++/defalloc.h Xinclude/g++/deque Xinclude/g++/deque.h Xinclude/g++/editbuf.h Xinclude/g++/floatio.h Xinclude/g++/fstream Xinclude/g++/fstream.h Xinclude/g++/function.h Xinclude/g++/functional Xinclude/g++/hash_map Xinclude/g++/hash_map.h Xinclude/g++/hash_set Xinclude/g++/hash_set.h Xinclude/g++/hashtable.h Xinclude/g++/heap.h Xinclude/g++/indstream.h Xinclude/g++/iolibio.h Xinclude/g++/iomanip Xinclude/g++/iomanip.h Xinclude/g++/iosfwd Xinclude/g++/iostdio.h Xinclude/g++/iostream Xinclude/g++/iostream.h Xinclude/g++/iostreamP.h Xinclude/g++/istream.h Xinclude/g++/iterator Xinclude/g++/iterator.h Xinclude/g++/libio.h Xinclude/g++/libioP.h Xinclude/g++/list Xinclude/g++/list.h Xinclude/g++/map Xinclude/g++/map.h Xinclude/g++/memory Xinclude/g++/multimap.h Xinclude/g++/multiset.h Xinclude/g++/numeric Xinclude/g++/ostream.h Xinclude/g++/pair.h Xinclude/g++/parsestream.h Xinclude/g++/pfstream.h Xinclude/g++/procbuf.h Xinclude/g++/pthread_alloc Xinclude/g++/pthread_alloc.h Xinclude/g++/queue Xinclude/g++/rope Xinclude/g++/rope.h Xinclude/g++/ropeimpl.h Xinclude/g++/set Xinclude/g++/set.h Xinclude/g++/slist Xinclude/g++/slist.h Xinclude/g++/stack Xinclude/g++/stack.h Xinclude/g++/std Xinclude/g++/std/bastring.cc Xinclude/g++/std/bastring.h Xinclude/g++/std/complext.cc Xinclude/g++/std/complext.h Xinclude/g++/std/dcomplex.h Xinclude/g++/std/fcomplex.h Xinclude/g++/std/ldcomplex.h Xinclude/g++/std/straits.h Xinclude/g++/stdexcept Xinclude/g++/stdiostream.h Xinclude/g++/stl.h Xinclude/g++/stl_algo.h Xinclude/g++/stl_algobase.h Xinclude/g++/stl_alloc.h Xinclude/g++/stl_bvector.h Xinclude/g++/stl_config.h Xinclude/g++/stl_construct.h Xinclude/g++/stl_deque.h Xinclude/g++/stl_function.h Xinclude/g++/stl_hash_fun.h Xinclude/g++/stl_hash_map.h Xinclude/g++/stl_hash_set.h Xinclude/g++/stl_hashtable.h Xinclude/g++/stl_heap.h Xinclude/g++/stl_iterator.h Xinclude/g++/stl_list.h Xinclude/g++/stl_map.h Xinclude/g++/stl_multimap.h Xinclude/g++/stl_multiset.h Xinclude/g++/stl_numeric.h Xinclude/g++/stl_pair.h Xinclude/g++/stl_queue.h Xinclude/g++/stl_raw_storage_iter.h Xinclude/g++/stl_relops.h Xinclude/g++/stl_rope.h Xinclude/g++/stl_set.h Xinclude/g++/stl_slist.h Xinclude/g++/stl_stack.h Xinclude/g++/stl_tempbuf.h Xinclude/g++/stl_tree.h Xinclude/g++/stl_uninitialized.h Xinclude/g++/stl_vector.h Xinclude/g++/stream.h Xinclude/g++/streambuf.h Xinclude/g++/strfile.h Xinclude/g++/string Xinclude/g++/strstream Xinclude/g++/strstream.h Xinclude/g++/tempbuf.h Xinclude/g++/tree.h Xinclude/g++/type_traits.h Xinclude/g++/utility Xinclude/g++/vector Xinclude/g++/vector.h Xinclude/readline Xinclude/readline/chardefs.h Xinclude/readline/keymaps.h Xinclude/readline/readline.h Xinfo/cpp.info Xinfo/cpp.info-1 Xinfo/cpp.info-2 Xinfo/cpp.info-3 Xinfo/gcc.info Xinfo/gcc.info-1 Xinfo/gcc.info-10 Xinfo/gcc.info-11 Xinfo/gcc.info-12 Xinfo/gcc.info-13 Xinfo/gcc.info-14 Xinfo/gcc.info-15 Xinfo/gcc.info-16 Xinfo/gcc.info-17 Xinfo/gcc.info-18 Xinfo/gcc.info-19 Xinfo/gcc.info-2 Xinfo/gcc.info-20 Xinfo/gcc.info-21 Xinfo/gcc.info-22 Xinfo/gcc.info-23 Xinfo/gcc.info-24 Xinfo/gcc.info-25 Xinfo/gcc.info-26 Xinfo/gcc.info-27 Xinfo/gcc.info-28 Xinfo/gcc.info-29 Xinfo/gcc.info-3 Xinfo/gcc.info-4 Xinfo/gcc.info-5 Xinfo/gcc.info-6 Xinfo/gcc.info-7 Xinfo/gcc.info-8 Xinfo/gcc.info-9 Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/SYSCALLS.c.X Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/cc1 Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/cc1plus Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/collect2 Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/cpp Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/README Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/exception Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/fixed Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/float.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/iso646.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/limits.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/new Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/new.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/proto.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/stdarg.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/stdbool.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/stddef.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/syslimits.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/typeinfo Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-alpha.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-arc.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-clipper.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-h8300.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-i860.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-i960.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-m32r.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-m88k.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-mips.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-mn10200.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-mn10300.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-pa.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-ppc.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-pyr.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-sh.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-sparc.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-spur.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/va-v850.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/include/varargs.h Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/libgcc.a Xlib/gcc-lib/i586-cygwin32/egcs-2.91.57/specs Xlib/libbfd.a Xlib/libbfd.la Xlib/libfl.a Xlib/libiberty.a Xlib/libmmalloc.a Xlib/libopcodes.a Xlib/libopcodes.la Xlib/libreadline.a Xman/bison.1 Xman/flex.1 Xman/i586-cygwin32-g++.1 Xman/make.1 Xman/man1/byacc.1 Xman/man1/cccp.1 Xman/man1/i586-cygwin32-addr2line.1 Xman/man1/i586-cygwin32-ar.1 Xman/man1/i586-cygwin32-as.1 Xman/man1/i586-cygwin32-c++filt.1 Xman/man1/i586-cygwin32-gcc.1 Xman/man1/i586-cygwin32-ld.1 Xman/man1/i586-cygwin32-nlmconv.1 Xman/man1/i586-cygwin32-nm.1 Xman/man1/i586-cygwin32-objcopy.1 Xman/man1/i586-cygwin32-objdump.1 Xman/man1/i586-cygwin32-ranlib.1 Xman/man1/i586-cygwin32-size.1 Xman/man1/i586-cygwin32-strings.1 Xman/man1/i586-cygwin32-strip.1 Xman/man1/patch.1 Xman/man1/runtest.1 Xman/man1/send-pr.1 Xshare/bison.hairy Xshare/bison.simple Xshare/dejagnu/baseboards/README Xshare/dejagnu/baseboards/a29k-udi.exp Xshare/dejagnu/baseboards/arc-sim.exp Xshare/dejagnu/baseboards/arm-ice.exp Xshare/dejagnu/baseboards/arm-sim.exp Xshare/dejagnu/baseboards/basic-sim.exp Xshare/dejagnu/baseboards/cygmon.exp Xshare/dejagnu/baseboards/cygwin.exp Xshare/dejagnu/baseboards/d10v-sim.exp Xshare/dejagnu/baseboards/d10v.exp Xshare/dejagnu/baseboards/d30v-sim.exp Xshare/dejagnu/baseboards/danlite-elf.exp Xshare/dejagnu/baseboards/dos.exp Xshare/dejagnu/baseboards/h8300-sim.exp Xshare/dejagnu/baseboards/h8300.exp Xshare/dejagnu/baseboards/i386-bozo.exp Xshare/dejagnu/baseboards/i960-cyclone.exp Xshare/dejagnu/baseboards/m32r-elf.exp Xshare/dejagnu/baseboards/m32r-sim.exp Xshare/dejagnu/baseboards/m68k-emc.exp Xshare/dejagnu/baseboards/mips-idt.exp Xshare/dejagnu/baseboards/mips-lnews-sim.exp Xshare/dejagnu/baseboards/mips-lsi-sim.exp Xshare/dejagnu/baseboards/mips-sim.exp Xshare/dejagnu/baseboards/mips64-sim.exp Xshare/dejagnu/baseboards/mips64vr4100-sim.exp Xshare/dejagnu/baseboards/mn10200-cygmon.exp Xshare/dejagnu/baseboards/mn10200-sim.exp Xshare/dejagnu/baseboards/mn10300-cygmon.exp Xshare/dejagnu/baseboards/mn10300-sim.exp Xshare/dejagnu/baseboards/msparc-cygmon.exp Xshare/dejagnu/baseboards/op50n.exp Xshare/dejagnu/baseboards/powerpc-bug.exp Xshare/dejagnu/baseboards/powerpc-bug1.exp Xshare/dejagnu/baseboards/powerpc-sim.exp Xshare/dejagnu/baseboards/powerpcle-sim.exp Xshare/dejagnu/baseboards/rom68k-idp.exp Xshare/dejagnu/baseboards/sh-hms-sim.exp Xshare/dejagnu/baseboards/sh-hms.exp Xshare/dejagnu/baseboards/sparc64-sim.exp Xshare/dejagnu/baseboards/sparclet-aout.exp Xshare/dejagnu/baseboards/sparclite-coff.exp Xshare/dejagnu/baseboards/sparclite-cygmon.exp Xshare/dejagnu/baseboards/sparclite-sim-le.exp Xshare/dejagnu/baseboards/sparclite-sim.exp Xshare/dejagnu/baseboards/tx39-dve.exp Xshare/dejagnu/baseboards/tx39-sim.exp Xshare/dejagnu/baseboards/unix.exp Xshare/dejagnu/baseboards/usparc-cygmon.exp Xshare/dejagnu/baseboards/v850-sim.exp Xshare/dejagnu/baseboards/vr4100-ddb.exp Xshare/dejagnu/baseboards/vr4100-sim.exp Xshare/dejagnu/baseboards/vr4300-ddb.exp Xshare/dejagnu/baseboards/vr4300-sim.exp Xshare/dejagnu/baseboards/vr4300.exp Xshare/dejagnu/baseboards/vr5000-ddb.exp Xshare/dejagnu/baseboards/vx4300.exp Xshare/dejagnu/baseboards/vx68k.exp Xshare/dejagnu/baseboards/vx960.exp Xshare/dejagnu/baseboards/vxsparc.exp Xshare/dejagnu/config.guess Xshare/dejagnu/config/README Xshare/dejagnu/config/arc.exp Xshare/dejagnu/config/arm-ice.exp Xshare/dejagnu/config/base-config.exp Xshare/dejagnu/config/base68k.exp Xshare/dejagnu/config/bug.exp Xshare/dejagnu/config/cygmon.exp Xshare/dejagnu/config/d10v.exp Xshare/dejagnu/config/ddb-ether.exp Xshare/dejagnu/config/ddb.exp Xshare/dejagnu/config/dos.exp Xshare/dejagnu/config/dve.exp Xshare/dejagnu/config/gdb-comm.exp Xshare/dejagnu/config/gdb_stub.exp Xshare/dejagnu/config/h8300.exp Xshare/dejagnu/config/i386-bozo.exp Xshare/dejagnu/config/i960.exp Xshare/dejagnu/config/m32r-stub.exp Xshare/dejagnu/config/m32r.exp Xshare/dejagnu/config/m68k-emc.exp Xshare/dejagnu/config/mips-idt.exp Xshare/dejagnu/config/mn10200-eval.exp Xshare/dejagnu/config/mn10300-eval.exp Xshare/dejagnu/config/netware.exp Xshare/dejagnu/config/powerpc-bug.exp Xshare/dejagnu/config/proelf.exp Xshare/dejagnu/config/rom68k.exp Xshare/dejagnu/config/sh.exp Xshare/dejagnu/config/sim.exp Xshare/dejagnu/config/slite.exp Xshare/dejagnu/config/sparclet.exp Xshare/dejagnu/config/udi.exp Xshare/dejagnu/config/unix.exp Xshare/dejagnu/config/vr4100.exp Xshare/dejagnu/config/vr4300.exp Xshare/dejagnu/config/vr5000.exp Xshare/dejagnu/config/vrtx.exp Xshare/dejagnu/config/vxworks.exp Xshare/dejagnu/debugger.exp Xshare/dejagnu/dg.exp Xshare/dejagnu/framework.exp Xshare/dejagnu/ftp.exp Xshare/dejagnu/i960glue.c Xshare/dejagnu/kermit.exp Xshare/dejagnu/libgloss.exp Xshare/dejagnu/mondfe.exp Xshare/dejagnu/remote.exp Xshare/dejagnu/rlogin.exp Xshare/dejagnu/rsh.exp Xshare/dejagnu/runtest.exp Xshare/dejagnu/standard.exp Xshare/dejagnu/stub-loader.c Xshare/dejagnu/target.exp Xshare/dejagnu/targetdb.exp Xshare/dejagnu/telnet.exp Xshare/dejagnu/testglue.c Xshare/dejagnu/tip.exp Xshare/dejagnu/util-defs.exp Xshare/dejagnu/utils.exp Xshare/dejagnu/xsh.exp Xshare/prms/cygnus END-of-pkg/PLIST exit -- -- Want to unsubscribe from this list? Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com