Automatic date update in version.in
[deliverable/binutils-gdb.git] / bfd / coffswap.h
CommitLineData
252b5132 1/* Generic COFF swapping routines, for BFD.
4b95cf5c 2 Copyright (C) 1990-2014 Free Software Foundation, Inc.
252b5132
RH
3 Written by Cygnus Support.
4
026df7c5 5 This file is part of BFD, the Binary File Descriptor library.
252b5132 6
026df7c5
NC
7 This program is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
cd123cb7 9 the Free Software Foundation; either version 3 of the License, or
026df7c5 10 (at your option) any later version.
252b5132 11
026df7c5
NC
12 This program is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
252b5132 16
026df7c5
NC
17 You should have received a copy of the GNU General Public License
18 along with this program; if not, write to the Free Software
cd123cb7
NC
19 Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 MA 02110-1301, USA. */
252b5132
RH
21
22/* This file contains routines used to swap COFF data. It is a header
23 file because the details of swapping depend on the details of the
24 structures used by each COFF implementation. This is included by
25 coffcode.h, as well as by the ECOFF backend.
26
27 Any file which uses this must first include "coff/internal.h" and
28 "coff/CPU.h". The functions will then be correct for that CPU. */
29
252b5132 30#ifndef GET_FCN_LNNOPTR
dc810e39
AM
31#define GET_FCN_LNNOPTR(abfd, ext) \
32 H_GET_32 (abfd, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr)
252b5132
RH
33#endif
34
35#ifndef GET_FCN_ENDNDX
dc810e39
AM
36#define GET_FCN_ENDNDX(abfd, ext) \
37 H_GET_32 (abfd, ext->x_sym.x_fcnary.x_fcn.x_endndx)
252b5132
RH
38#endif
39
40#ifndef PUT_FCN_LNNOPTR
dc810e39
AM
41#define PUT_FCN_LNNOPTR(abfd, in, ext) \
42 H_PUT_32 (abfd, in, ext->x_sym.x_fcnary.x_fcn.x_lnnoptr)
252b5132
RH
43#endif
44#ifndef PUT_FCN_ENDNDX
dc810e39
AM
45#define PUT_FCN_ENDNDX(abfd, in, ext) \
46 H_PUT_32 (abfd, in, ext->x_sym.x_fcnary.x_fcn.x_endndx)
252b5132
RH
47#endif
48#ifndef GET_LNSZ_LNNO
dc810e39
AM
49#define GET_LNSZ_LNNO(abfd, ext) \
50 H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_lnno)
252b5132
RH
51#endif
52#ifndef GET_LNSZ_SIZE
dc810e39
AM
53#define GET_LNSZ_SIZE(abfd, ext) \
54 H_GET_16 (abfd, ext->x_sym.x_misc.x_lnsz.x_size)
252b5132
RH
55#endif
56#ifndef PUT_LNSZ_LNNO
dc810e39
AM
57#define PUT_LNSZ_LNNO(abfd, in, ext) \
58 H_PUT_16 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_lnno)
252b5132
RH
59#endif
60#ifndef PUT_LNSZ_SIZE
dc810e39
AM
61#define PUT_LNSZ_SIZE(abfd, in, ext) \
62 H_PUT_16 (abfd, in, ext->x_sym.x_misc.x_lnsz.x_size)
252b5132
RH
63#endif
64#ifndef GET_SCN_SCNLEN
dc810e39
AM
65#define GET_SCN_SCNLEN(abfd, ext) \
66 H_GET_32 (abfd, ext->x_scn.x_scnlen)
252b5132
RH
67#endif
68#ifndef GET_SCN_NRELOC
dc810e39
AM
69#define GET_SCN_NRELOC(abfd, ext) \
70 H_GET_16 (abfd, ext->x_scn.x_nreloc)
252b5132
RH
71#endif
72#ifndef GET_SCN_NLINNO
dc810e39
AM
73#define GET_SCN_NLINNO(abfd, ext) \
74 H_GET_16 (abfd, ext->x_scn.x_nlinno)
252b5132
RH
75#endif
76#ifndef PUT_SCN_SCNLEN
dc810e39
AM
77#define PUT_SCN_SCNLEN(abfd, in, ext) \
78 H_PUT_32 (abfd, in, ext->x_scn.x_scnlen)
252b5132
RH
79#endif
80#ifndef PUT_SCN_NRELOC
dc810e39
AM
81#define PUT_SCN_NRELOC(abfd, in, ext) \
82 H_PUT_16 (abfd, in, ext->x_scn.x_nreloc)
252b5132
RH
83#endif
84#ifndef PUT_SCN_NLINNO
dc810e39
AM
85#define PUT_SCN_NLINNO(abfd, in, ext) \
86 H_PUT_16 (abfd, in, ext->x_scn.x_nlinno)
252b5132
RH
87#endif
88#ifndef GET_LINENO_LNNO
dc810e39
AM
89#define GET_LINENO_LNNO(abfd, ext) \
90 H_GET_16 (abfd, ext->l_lnno);
252b5132
RH
91#endif
92#ifndef PUT_LINENO_LNNO
dc810e39
AM
93#define PUT_LINENO_LNNO(abfd, val, ext) \
94 H_PUT_16 (abfd, val, ext->l_lnno);
252b5132
RH
95#endif
96
97/* The f_symptr field in the filehdr is sometimes 64 bits. */
98#ifndef GET_FILEHDR_SYMPTR
dc810e39 99#define GET_FILEHDR_SYMPTR H_GET_32
252b5132
RH
100#endif
101#ifndef PUT_FILEHDR_SYMPTR
dc810e39 102#define PUT_FILEHDR_SYMPTR H_PUT_32
252b5132
RH
103#endif
104
105/* Some fields in the aouthdr are sometimes 64 bits. */
106#ifndef GET_AOUTHDR_TSIZE
dc810e39 107#define GET_AOUTHDR_TSIZE H_GET_32
252b5132
RH
108#endif
109#ifndef PUT_AOUTHDR_TSIZE
dc810e39 110#define PUT_AOUTHDR_TSIZE H_PUT_32
252b5132
RH
111#endif
112#ifndef GET_AOUTHDR_DSIZE
dc810e39 113#define GET_AOUTHDR_DSIZE H_GET_32
252b5132
RH
114#endif
115#ifndef PUT_AOUTHDR_DSIZE
dc810e39 116#define PUT_AOUTHDR_DSIZE H_PUT_32
252b5132
RH
117#endif
118#ifndef GET_AOUTHDR_BSIZE
dc810e39 119#define GET_AOUTHDR_BSIZE H_GET_32
252b5132
RH
120#endif
121#ifndef PUT_AOUTHDR_BSIZE
dc810e39 122#define PUT_AOUTHDR_BSIZE H_PUT_32
252b5132
RH
123#endif
124#ifndef GET_AOUTHDR_ENTRY
dc810e39 125#define GET_AOUTHDR_ENTRY H_GET_32
252b5132
RH
126#endif
127#ifndef PUT_AOUTHDR_ENTRY
dc810e39 128#define PUT_AOUTHDR_ENTRY H_PUT_32
252b5132
RH
129#endif
130#ifndef GET_AOUTHDR_TEXT_START
dc810e39 131#define GET_AOUTHDR_TEXT_START H_GET_32
252b5132
RH
132#endif
133#ifndef PUT_AOUTHDR_TEXT_START
dc810e39 134#define PUT_AOUTHDR_TEXT_START H_PUT_32
252b5132
RH
135#endif
136#ifndef GET_AOUTHDR_DATA_START
dc810e39 137#define GET_AOUTHDR_DATA_START H_GET_32
252b5132
RH
138#endif
139#ifndef PUT_AOUTHDR_DATA_START
dc810e39 140#define PUT_AOUTHDR_DATA_START H_PUT_32
252b5132
RH
141#endif
142
143/* Some fields in the scnhdr are sometimes 64 bits. */
144#ifndef GET_SCNHDR_PADDR
dc810e39 145#define GET_SCNHDR_PADDR H_GET_32
252b5132
RH
146#endif
147#ifndef PUT_SCNHDR_PADDR
dc810e39 148#define PUT_SCNHDR_PADDR H_PUT_32
252b5132
RH
149#endif
150#ifndef GET_SCNHDR_VADDR
dc810e39 151#define GET_SCNHDR_VADDR H_GET_32
252b5132
RH
152#endif
153#ifndef PUT_SCNHDR_VADDR
dc810e39 154#define PUT_SCNHDR_VADDR H_PUT_32
252b5132
RH
155#endif
156#ifndef GET_SCNHDR_SIZE
dc810e39 157#define GET_SCNHDR_SIZE H_GET_32
252b5132
RH
158#endif
159#ifndef PUT_SCNHDR_SIZE
dc810e39 160#define PUT_SCNHDR_SIZE H_PUT_32
252b5132
RH
161#endif
162#ifndef GET_SCNHDR_SCNPTR
dc810e39 163#define GET_SCNHDR_SCNPTR H_GET_32
252b5132
RH
164#endif
165#ifndef PUT_SCNHDR_SCNPTR
dc810e39 166#define PUT_SCNHDR_SCNPTR H_PUT_32
252b5132
RH
167#endif
168#ifndef GET_SCNHDR_RELPTR
dc810e39 169#define GET_SCNHDR_RELPTR H_GET_32
252b5132
RH
170#endif
171#ifndef PUT_SCNHDR_RELPTR
dc810e39 172#define PUT_SCNHDR_RELPTR H_PUT_32
252b5132
RH
173#endif
174#ifndef GET_SCNHDR_LNNOPTR
dc810e39 175#define GET_SCNHDR_LNNOPTR H_GET_32
252b5132
RH
176#endif
177#ifndef PUT_SCNHDR_LNNOPTR
dc810e39 178#define PUT_SCNHDR_LNNOPTR H_PUT_32
252b5132
RH
179#endif
180#ifndef GET_SCNHDR_NRELOC
dc810e39 181#define GET_SCNHDR_NRELOC H_GET_16
252b5132 182#endif
7f6d05e8
CP
183#ifndef MAX_SCNHDR_NRELOC
184#define MAX_SCNHDR_NRELOC 0xffff
185#endif
252b5132 186#ifndef PUT_SCNHDR_NRELOC
dc810e39 187#define PUT_SCNHDR_NRELOC H_PUT_16
252b5132
RH
188#endif
189#ifndef GET_SCNHDR_NLNNO
dc810e39 190#define GET_SCNHDR_NLNNO H_GET_16
252b5132 191#endif
7f6d05e8
CP
192#ifndef MAX_SCNHDR_NLNNO
193#define MAX_SCNHDR_NLNNO 0xffff
194#endif
252b5132 195#ifndef PUT_SCNHDR_NLNNO
dc810e39 196#define PUT_SCNHDR_NLNNO H_PUT_16
252b5132
RH
197#endif
198#ifndef GET_SCNHDR_FLAGS
dc810e39 199#define GET_SCNHDR_FLAGS H_GET_32
252b5132
RH
200#endif
201#ifndef PUT_SCNHDR_FLAGS
dc810e39 202#define PUT_SCNHDR_FLAGS H_PUT_32
252b5132
RH
203#endif
204
7f6d05e8 205#ifndef GET_RELOC_VADDR
dc810e39 206#define GET_RELOC_VADDR H_GET_32
7f6d05e8
CP
207#endif
208#ifndef PUT_RELOC_VADDR
dc810e39 209#define PUT_RELOC_VADDR H_PUT_32
7f6d05e8 210#endif
252b5132 211
252b5132
RH
212#ifndef NO_COFF_RELOCS
213
214static void
7920ce38 215coff_swap_reloc_in (bfd * abfd, void * src, void * dst)
252b5132
RH
216{
217 RELOC *reloc_src = (RELOC *) src;
218 struct internal_reloc *reloc_dst = (struct internal_reloc *) dst;
219
7920ce38 220 reloc_dst->r_vaddr = GET_RELOC_VADDR (abfd, reloc_src->r_vaddr);
dc810e39 221 reloc_dst->r_symndx = H_GET_S32 (abfd, reloc_src->r_symndx);
7920ce38 222 reloc_dst->r_type = H_GET_16 (abfd, reloc_src->r_type);
252b5132
RH
223
224#ifdef SWAP_IN_RELOC_OFFSET
dc810e39 225 reloc_dst->r_offset = SWAP_IN_RELOC_OFFSET (abfd, reloc_src->r_offset);
252b5132
RH
226#endif
227}
228
229static unsigned int
7920ce38 230coff_swap_reloc_out (bfd * abfd, void * src, void * dst)
252b5132 231{
dc810e39
AM
232 struct internal_reloc *reloc_src = (struct internal_reloc *) src;
233 struct external_reloc *reloc_dst = (struct external_reloc *) dst;
7920ce38 234
dc810e39
AM
235 PUT_RELOC_VADDR (abfd, reloc_src->r_vaddr, reloc_dst->r_vaddr);
236 H_PUT_32 (abfd, reloc_src->r_symndx, reloc_dst->r_symndx);
dc810e39 237 H_PUT_16 (abfd, reloc_src->r_type, reloc_dst->r_type);
252b5132
RH
238
239#ifdef SWAP_OUT_RELOC_OFFSET
dc810e39 240 SWAP_OUT_RELOC_OFFSET (abfd, reloc_src->r_offset, reloc_dst->r_offset);
252b5132
RH
241#endif
242#ifdef SWAP_OUT_RELOC_EXTRA
dc810e39 243 SWAP_OUT_RELOC_EXTRA (abfd, reloc_src, reloc_dst);
252b5132
RH
244#endif
245
6b3b007b 246 return bfd_coff_relsz (abfd);
252b5132
RH
247}
248
249#endif /* NO_COFF_RELOCS */
250
251static void
7920ce38 252coff_swap_filehdr_in (bfd * abfd, void * src, void * dst)
252b5132
RH
253{
254 FILHDR *filehdr_src = (FILHDR *) src;
255 struct internal_filehdr *filehdr_dst = (struct internal_filehdr *) dst;
beb1bf64 256
252b5132
RH
257#ifdef COFF_ADJUST_FILEHDR_IN_PRE
258 COFF_ADJUST_FILEHDR_IN_PRE (abfd, src, dst);
259#endif
7920ce38
NC
260 filehdr_dst->f_magic = H_GET_16 (abfd, filehdr_src->f_magic);
261 filehdr_dst->f_nscns = H_GET_16 (abfd, filehdr_src->f_nscns);
dc810e39
AM
262 filehdr_dst->f_timdat = H_GET_32 (abfd, filehdr_src->f_timdat);
263 filehdr_dst->f_symptr = GET_FILEHDR_SYMPTR (abfd, filehdr_src->f_symptr);
7920ce38 264 filehdr_dst->f_nsyms = H_GET_32 (abfd, filehdr_src->f_nsyms);
dc810e39 265 filehdr_dst->f_opthdr = H_GET_16 (abfd, filehdr_src->f_opthdr);
7920ce38 266 filehdr_dst->f_flags = H_GET_16 (abfd, filehdr_src->f_flags);
252b5132 267#ifdef TIC80_TARGET_ID
dc810e39 268 filehdr_dst->f_target_id = H_GET_16 (abfd, filehdr_src->f_target_id);
252b5132
RH
269#endif
270
271#ifdef COFF_ADJUST_FILEHDR_IN_POST
272 COFF_ADJUST_FILEHDR_IN_POST (abfd, src, dst);
273#endif
274}
275
276static unsigned int
7920ce38 277coff_swap_filehdr_out (bfd *abfd, void * in, void * out)
252b5132 278{
dc810e39
AM
279 struct internal_filehdr *filehdr_in = (struct internal_filehdr *) in;
280 FILHDR *filehdr_out = (FILHDR *) out;
252b5132
RH
281
282#ifdef COFF_ADJUST_FILEHDR_OUT_PRE
283 COFF_ADJUST_FILEHDR_OUT_PRE (abfd, in, out);
284#endif
dc810e39
AM
285 H_PUT_16 (abfd, filehdr_in->f_magic, filehdr_out->f_magic);
286 H_PUT_16 (abfd, filehdr_in->f_nscns, filehdr_out->f_nscns);
287 H_PUT_32 (abfd, filehdr_in->f_timdat, filehdr_out->f_timdat);
288 PUT_FILEHDR_SYMPTR (abfd, filehdr_in->f_symptr, filehdr_out->f_symptr);
289 H_PUT_32 (abfd, filehdr_in->f_nsyms, filehdr_out->f_nsyms);
290 H_PUT_16 (abfd, filehdr_in->f_opthdr, filehdr_out->f_opthdr);
291 H_PUT_16 (abfd, filehdr_in->f_flags, filehdr_out->f_flags);
252b5132 292#ifdef TIC80_TARGET_ID
dc810e39 293 H_PUT_16 (abfd, filehdr_in->f_target_id, filehdr_out->f_target_id);
252b5132
RH
294#endif
295
296#ifdef COFF_ADJUST_FILEHDR_OUT_POST
297 COFF_ADJUST_FILEHDR_OUT_POST (abfd, in, out);
298#endif
6b3b007b 299 return bfd_coff_filhsz (abfd);
252b5132
RH
300}
301
252b5132
RH
302#ifndef NO_COFF_SYMBOLS
303
304static void
7920ce38 305coff_swap_sym_in (bfd * abfd, void * ext1, void * in1)
252b5132 306{
dc810e39
AM
307 SYMENT *ext = (SYMENT *) ext1;
308 struct internal_syment *in = (struct internal_syment *) in1;
309
310 if (ext->e.e_name[0] == 0)
311 {
312 in->_n._n_n._n_zeroes = 0;
313 in->_n._n_n._n_offset = H_GET_32 (abfd, ext->e.e.e_offset);
314 }
315 else
316 {
252b5132 317#if SYMNMLEN != E_SYMNMLEN
7920ce38 318#error we need to cope with truncating or extending SYMNMLEN
252b5132 319#else
dc810e39
AM
320 memcpy (in->_n._n_name, ext->e.e_name, SYMNMLEN);
321#endif
322 }
7920ce38 323
dc810e39
AM
324 in->n_value = H_GET_32 (abfd, ext->e_value);
325 in->n_scnum = H_GET_16 (abfd, ext->e_scnum);
326 if (sizeof (ext->e_type) == 2)
7920ce38 327 in->n_type = H_GET_16 (abfd, ext->e_type);
dc810e39 328 else
7920ce38 329 in->n_type = H_GET_32 (abfd, ext->e_type);
dc810e39
AM
330 in->n_sclass = H_GET_8 (abfd, ext->e_sclass);
331 in->n_numaux = H_GET_8 (abfd, ext->e_numaux);
6c784c9a
TW
332#ifdef COFF_ADJUST_SYM_IN_POST
333 COFF_ADJUST_SYM_IN_POST (abfd, ext1, in1);
334#endif
252b5132
RH
335}
336
337static unsigned int
7920ce38 338coff_swap_sym_out (bfd * abfd, void * inp, void * extp)
252b5132 339{
dc810e39
AM
340 struct internal_syment *in = (struct internal_syment *) inp;
341 SYMENT *ext =(SYMENT *) extp;
026df7c5
NC
342
343#ifdef COFF_ADJUST_SYM_OUT_PRE
344 COFF_ADJUST_SYM_OUT_PRE (abfd, inp, extp);
345#endif
346
347 if (in->_n._n_name[0] == 0)
dc810e39
AM
348 {
349 H_PUT_32 (abfd, 0, ext->e.e.e_zeroes);
350 H_PUT_32 (abfd, in->_n._n_n._n_offset, ext->e.e.e_offset);
351 }
352 else
353 {
252b5132 354#if SYMNMLEN != E_SYMNMLEN
7920ce38 355#error we need to cope with truncating or extending SYMNMLEN
252b5132 356#else
026df7c5 357 memcpy (ext->e.e_name, in->_n._n_name, SYMNMLEN);
252b5132 358#endif
dc810e39 359 }
026df7c5 360
dc810e39
AM
361 H_PUT_32 (abfd, in->n_value, ext->e_value);
362 H_PUT_16 (abfd, in->n_scnum, ext->e_scnum);
026df7c5 363
e60b52c6 364 if (sizeof (ext->e_type) == 2)
7920ce38 365 H_PUT_16 (abfd, in->n_type, ext->e_type);
252b5132 366 else
7920ce38 367 H_PUT_32 (abfd, in->n_type, ext->e_type);
026df7c5 368
dc810e39
AM
369 H_PUT_8 (abfd, in->n_sclass, ext->e_sclass);
370 H_PUT_8 (abfd, in->n_numaux, ext->e_numaux);
026df7c5 371
6c784c9a
TW
372#ifdef COFF_ADJUST_SYM_OUT_POST
373 COFF_ADJUST_SYM_OUT_POST (abfd, inp, extp);
374#endif
026df7c5 375
252b5132
RH
376 return SYMESZ;
377}
378
379static void
7920ce38
NC
380coff_swap_aux_in (bfd *abfd,
381 void * ext1,
382 int type,
96d56e9f 383 int in_class,
7920ce38
NC
384 int indx,
385 int numaux,
386 void * in1)
252b5132 387{
dc810e39
AM
388 AUXENT *ext = (AUXENT *) ext1;
389 union internal_auxent *in = (union internal_auxent *) in1;
252b5132
RH
390
391#ifdef COFF_ADJUST_AUX_IN_PRE
96d56e9f 392 COFF_ADJUST_AUX_IN_PRE (abfd, ext1, type, in_class, indx, numaux, in1);
252b5132 393#endif
026df7c5 394
96d56e9f 395 switch (in_class)
dc810e39 396 {
252b5132 397 case C_FILE:
dc810e39
AM
398 if (ext->x_file.x_fname[0] == 0)
399 {
252b5132 400 in->x_file.x_n.x_zeroes = 0;
dc810e39
AM
401 in->x_file.x_n.x_offset = H_GET_32 (abfd, ext->x_file.x_n.x_offset);
402 }
403 else
404 {
252b5132 405#if FILNMLEN != E_FILNMLEN
7920ce38 406#error we need to cope with truncating or extending FILNMLEN
252b5132 407#else
dc810e39
AM
408 if (numaux > 1)
409 {
410 if (indx == 0)
411 memcpy (in->x_file.x_fname, ext->x_file.x_fname,
412 numaux * sizeof (AUXENT));
413 }
414 else
026df7c5 415 memcpy (in->x_file.x_fname, ext->x_file.x_fname, FILNMLEN);
dc810e39
AM
416#endif
417 }
252b5132
RH
418 goto end;
419
252b5132
RH
420 case C_STAT:
421#ifdef C_LEAFSTAT
422 case C_LEAFSTAT:
423#endif
424 case C_HIDDEN:
dc810e39
AM
425 if (type == T_NULL)
426 {
427 in->x_scn.x_scnlen = GET_SCN_SCNLEN (abfd, ext);
428 in->x_scn.x_nreloc = GET_SCN_NRELOC (abfd, ext);
429 in->x_scn.x_nlinno = GET_SCN_NLINNO (abfd, ext);
252b5132
RH
430
431 /* PE defines some extra fields; we zero them out for
432 safety. */
433 in->x_scn.x_checksum = 0;
434 in->x_scn.x_associated = 0;
435 in->x_scn.x_comdat = 0;
436
437 goto end;
438 }
439 break;
440 }
441
dc810e39 442 in->x_sym.x_tagndx.l = H_GET_32 (abfd, ext->x_sym.x_tagndx);
252b5132 443#ifndef NO_TVNDX
dc810e39 444 in->x_sym.x_tvndx = H_GET_16 (abfd, ext->x_sym.x_tvndx);
252b5132
RH
445#endif
446
96d56e9f
NC
447 if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
448 || ISTAG (in_class))
252b5132
RH
449 {
450 in->x_sym.x_fcnary.x_fcn.x_lnnoptr = GET_FCN_LNNOPTR (abfd, ext);
451 in->x_sym.x_fcnary.x_fcn.x_endndx.l = GET_FCN_ENDNDX (abfd, ext);
452 }
453 else
454 {
455#if DIMNUM != E_DIMNUM
dc810e39 456#error we need to cope with truncating or extending DIMNUM
252b5132
RH
457#endif
458 in->x_sym.x_fcnary.x_ary.x_dimen[0] =
dc810e39 459 H_GET_16 (abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[0]);
252b5132 460 in->x_sym.x_fcnary.x_ary.x_dimen[1] =
dc810e39 461 H_GET_16 (abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[1]);
252b5132 462 in->x_sym.x_fcnary.x_ary.x_dimen[2] =
dc810e39 463 H_GET_16 (abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[2]);
252b5132 464 in->x_sym.x_fcnary.x_ary.x_dimen[3] =
dc810e39 465 H_GET_16 (abfd, ext->x_sym.x_fcnary.x_ary.x_dimen[3]);
252b5132
RH
466 }
467
026df7c5 468 if (ISFCN (type))
7920ce38 469 in->x_sym.x_misc.x_fsize = H_GET_32 (abfd, ext->x_sym.x_misc.x_fsize);
dc810e39
AM
470 else
471 {
472 in->x_sym.x_misc.x_lnsz.x_lnno = GET_LNSZ_LNNO (abfd, ext);
473 in->x_sym.x_misc.x_lnsz.x_size = GET_LNSZ_SIZE (abfd, ext);
474 }
252b5132 475
dc810e39 476 end: ;
252b5132
RH
477
478#ifdef COFF_ADJUST_AUX_IN_POST
96d56e9f 479 COFF_ADJUST_AUX_IN_POST (abfd, ext1, type, in_class, indx, numaux, in1);
252b5132
RH
480#endif
481}
482
483static unsigned int
7920ce38
NC
484coff_swap_aux_out (bfd * abfd,
485 void * inp,
486 int type,
96d56e9f 487 int in_class,
7920ce38
NC
488 int indx ATTRIBUTE_UNUSED,
489 int numaux ATTRIBUTE_UNUSED,
490 void * extp)
252b5132 491{
7920ce38 492 union internal_auxent * in = (union internal_auxent *) inp;
dc810e39 493 AUXENT *ext = (AUXENT *) extp;
252b5132
RH
494
495#ifdef COFF_ADJUST_AUX_OUT_PRE
96d56e9f 496 COFF_ADJUST_AUX_OUT_PRE (abfd, inp, type, in_class, indx, numaux, extp);
252b5132 497#endif
026df7c5 498
7920ce38 499 memset (ext, 0, AUXESZ);
026df7c5 500
96d56e9f 501 switch (in_class)
dc810e39
AM
502 {
503 case C_FILE:
504 if (in->x_file.x_fname[0] == 0)
505 {
506 H_PUT_32 (abfd, 0, ext->x_file.x_n.x_zeroes);
507 H_PUT_32 (abfd, in->x_file.x_n.x_offset, ext->x_file.x_n.x_offset);
508 }
509 else
510 {
252b5132 511#if FILNMLEN != E_FILNMLEN
7920ce38 512#error we need to cope with truncating or extending FILNMLEN
252b5132 513#else
dc810e39 514 memcpy (ext->x_file.x_fname, in->x_file.x_fname, FILNMLEN);
252b5132 515#endif
dc810e39
AM
516 }
517 goto end;
252b5132 518
dc810e39 519 case C_STAT:
252b5132 520#ifdef C_LEAFSTAT
dc810e39 521 case C_LEAFSTAT:
252b5132 522#endif
dc810e39
AM
523 case C_HIDDEN:
524 if (type == T_NULL)
525 {
526 PUT_SCN_SCNLEN (abfd, in->x_scn.x_scnlen, ext);
527 PUT_SCN_NRELOC (abfd, in->x_scn.x_nreloc, ext);
528 PUT_SCN_NLINNO (abfd, in->x_scn.x_nlinno, ext);
529 goto end;
530 }
531 break;
252b5132 532 }
252b5132 533
dc810e39 534 H_PUT_32 (abfd, in->x_sym.x_tagndx.l, ext->x_sym.x_tagndx);
252b5132 535#ifndef NO_TVNDX
dc810e39 536 H_PUT_16 (abfd, in->x_sym.x_tvndx, ext->x_sym.x_tvndx);
252b5132
RH
537#endif
538
96d56e9f
NC
539 if (in_class == C_BLOCK || in_class == C_FCN || ISFCN (type)
540 || ISTAG (in_class))
252b5132 541 {
dc810e39
AM
542 PUT_FCN_LNNOPTR (abfd, in->x_sym.x_fcnary.x_fcn.x_lnnoptr, ext);
543 PUT_FCN_ENDNDX (abfd, in->x_sym.x_fcnary.x_fcn.x_endndx.l, ext);
252b5132
RH
544 }
545 else
546 {
547#if DIMNUM != E_DIMNUM
dc810e39
AM
548#error we need to cope with truncating or extending DIMNUM
549#endif
550 H_PUT_16 (abfd, in->x_sym.x_fcnary.x_ary.x_dimen[0],
551 ext->x_sym.x_fcnary.x_ary.x_dimen[0]);
552 H_PUT_16 (abfd, in->x_sym.x_fcnary.x_ary.x_dimen[1],
553 ext->x_sym.x_fcnary.x_ary.x_dimen[1]);
554 H_PUT_16 (abfd, in->x_sym.x_fcnary.x_ary.x_dimen[2],
555 ext->x_sym.x_fcnary.x_ary.x_dimen[2]);
556 H_PUT_16 (abfd, in->x_sym.x_fcnary.x_ary.x_dimen[3],
557 ext->x_sym.x_fcnary.x_ary.x_dimen[3]);
252b5132
RH
558 }
559
560 if (ISFCN (type))
dc810e39 561 H_PUT_32 (abfd, in->x_sym.x_misc.x_fsize, ext->x_sym.x_misc.x_fsize);
252b5132
RH
562 else
563 {
564 PUT_LNSZ_LNNO (abfd, in->x_sym.x_misc.x_lnsz.x_lnno, ext);
565 PUT_LNSZ_SIZE (abfd, in->x_sym.x_misc.x_lnsz.x_size, ext);
566 }
567
dc810e39 568 end:
252b5132 569#ifdef COFF_ADJUST_AUX_OUT_POST
96d56e9f 570 COFF_ADJUST_AUX_OUT_POST (abfd, inp, type, in_class, indx, numaux, extp);
252b5132
RH
571#endif
572 return AUXESZ;
573}
574
575#endif /* NO_COFF_SYMBOLS */
576
577#ifndef NO_COFF_LINENOS
578
579static void
7920ce38 580coff_swap_lineno_in (bfd * abfd, void * ext1, void * in1)
252b5132 581{
dc810e39
AM
582 LINENO *ext = (LINENO *) ext1;
583 struct internal_lineno *in = (struct internal_lineno *) in1;
252b5132 584
dc810e39
AM
585 in->l_addr.l_symndx = H_GET_32 (abfd, ext->l_addr.l_symndx);
586 in->l_lnno = GET_LINENO_LNNO (abfd, ext);
252b5132
RH
587}
588
589static unsigned int
7920ce38 590coff_swap_lineno_out (bfd * abfd, void * inp, void * outp)
252b5132 591{
dc810e39
AM
592 struct internal_lineno *in = (struct internal_lineno *) inp;
593 struct external_lineno *ext = (struct external_lineno *) outp;
594 H_PUT_32 (abfd, in->l_addr.l_symndx, ext->l_addr.l_symndx);
252b5132
RH
595
596 PUT_LINENO_LNNO (abfd, in->l_lnno, ext);
597 return LINESZ;
598}
599
600#endif /* NO_COFF_LINENOS */
601
602static void
7920ce38 603coff_swap_aouthdr_in (bfd * abfd, void * aouthdr_ext1, void * aouthdr_int1)
252b5132 604{
dc810e39
AM
605 AOUTHDR *aouthdr_ext;
606 struct internal_aouthdr *aouthdr_int;
607
608 aouthdr_ext = (AOUTHDR *) aouthdr_ext1;
609 aouthdr_int = (struct internal_aouthdr *) aouthdr_int1;
610 aouthdr_int->magic = H_GET_16 (abfd, aouthdr_ext->magic);
611 aouthdr_int->vstamp = H_GET_16 (abfd, aouthdr_ext->vstamp);
612 aouthdr_int->tsize = GET_AOUTHDR_TSIZE (abfd, aouthdr_ext->tsize);
613 aouthdr_int->dsize = GET_AOUTHDR_DSIZE (abfd, aouthdr_ext->dsize);
614 aouthdr_int->bsize = GET_AOUTHDR_BSIZE (abfd, aouthdr_ext->bsize);
615 aouthdr_int->entry = GET_AOUTHDR_ENTRY (abfd, aouthdr_ext->entry);
252b5132 616 aouthdr_int->text_start =
dc810e39 617 GET_AOUTHDR_TEXT_START (abfd, aouthdr_ext->text_start);
252b5132 618 aouthdr_int->data_start =
dc810e39 619 GET_AOUTHDR_DATA_START (abfd, aouthdr_ext->data_start);
252b5132
RH
620
621#ifdef I960
dc810e39 622 aouthdr_int->tagentries = H_GET_32 (abfd, aouthdr_ext->tagentries);
252b5132
RH
623#endif
624
625#ifdef APOLLO_M68
dc810e39
AM
626 H_PUT_32 (abfd, aouthdr_int->o_inlib, aouthdr_ext->o_inlib);
627 H_PUT_32 (abfd, aouthdr_int->o_sri, aouthdr_ext->o_sri);
628 H_PUT_32 (abfd, aouthdr_int->vid[0], aouthdr_ext->vid);
629 H_PUT_32 (abfd, aouthdr_int->vid[1], aouthdr_ext->vid + 4);
252b5132
RH
630#endif
631
252b5132 632#ifdef RS6000COFF_C
7f6d05e8 633#ifdef XCOFF64
dc810e39 634 aouthdr_int->o_toc = H_GET_64 (abfd, aouthdr_ext->o_toc);
7f6d05e8 635#else
dc810e39
AM
636 aouthdr_int->o_toc = H_GET_32 (abfd, aouthdr_ext->o_toc);
637#endif
026df7c5
NC
638 aouthdr_int->o_snentry = H_GET_16 (abfd, aouthdr_ext->o_snentry);
639 aouthdr_int->o_sntext = H_GET_16 (abfd, aouthdr_ext->o_sntext);
640 aouthdr_int->o_sndata = H_GET_16 (abfd, aouthdr_ext->o_sndata);
641 aouthdr_int->o_sntoc = H_GET_16 (abfd, aouthdr_ext->o_sntoc);
dc810e39 642 aouthdr_int->o_snloader = H_GET_16 (abfd, aouthdr_ext->o_snloader);
026df7c5 643 aouthdr_int->o_snbss = H_GET_16 (abfd, aouthdr_ext->o_snbss);
dc810e39
AM
644 aouthdr_int->o_algntext = H_GET_16 (abfd, aouthdr_ext->o_algntext);
645 aouthdr_int->o_algndata = H_GET_16 (abfd, aouthdr_ext->o_algndata);
026df7c5
NC
646 aouthdr_int->o_modtype = H_GET_16 (abfd, aouthdr_ext->o_modtype);
647 aouthdr_int->o_cputype = H_GET_16 (abfd, aouthdr_ext->o_cputype);
7f6d05e8 648#ifdef XCOFF64
dc810e39 649 aouthdr_int->o_maxstack = H_GET_64 (abfd, aouthdr_ext->o_maxstack);
026df7c5 650 aouthdr_int->o_maxdata = H_GET_64 (abfd, aouthdr_ext->o_maxdata);
7f6d05e8 651#else
dc810e39 652 aouthdr_int->o_maxstack = H_GET_32 (abfd, aouthdr_ext->o_maxstack);
026df7c5 653 aouthdr_int->o_maxdata = H_GET_32 (abfd, aouthdr_ext->o_maxdata);
252b5132 654#endif
7f6d05e8 655#endif
252b5132
RH
656
657#ifdef MIPSECOFF
026df7c5
NC
658 aouthdr_int->bss_start = H_GET_32 (abfd, aouthdr_ext->bss_start);
659 aouthdr_int->gp_value = H_GET_32 (abfd, aouthdr_ext->gp_value);
660 aouthdr_int->gprmask = H_GET_32 (abfd, aouthdr_ext->gprmask);
dc810e39
AM
661 aouthdr_int->cprmask[0] = H_GET_32 (abfd, aouthdr_ext->cprmask[0]);
662 aouthdr_int->cprmask[1] = H_GET_32 (abfd, aouthdr_ext->cprmask[1]);
663 aouthdr_int->cprmask[2] = H_GET_32 (abfd, aouthdr_ext->cprmask[2]);
664 aouthdr_int->cprmask[3] = H_GET_32 (abfd, aouthdr_ext->cprmask[3]);
252b5132
RH
665#endif
666
667#ifdef ALPHAECOFF
dc810e39 668 aouthdr_int->bss_start = H_GET_64 (abfd, aouthdr_ext->bss_start);
026df7c5
NC
669 aouthdr_int->gp_value = H_GET_64 (abfd, aouthdr_ext->gp_value);
670 aouthdr_int->gprmask = H_GET_32 (abfd, aouthdr_ext->gprmask);
671 aouthdr_int->fprmask = H_GET_32 (abfd, aouthdr_ext->fprmask);
252b5132
RH
672#endif
673}
674
675static unsigned int
7920ce38 676coff_swap_aouthdr_out (bfd * abfd, void * in, void * out)
252b5132 677{
dc810e39
AM
678 struct internal_aouthdr *aouthdr_in = (struct internal_aouthdr *) in;
679 AOUTHDR *aouthdr_out = (AOUTHDR *) out;
680
681 H_PUT_16 (abfd, aouthdr_in->magic, aouthdr_out->magic);
682 H_PUT_16 (abfd, aouthdr_in->vstamp, aouthdr_out->vstamp);
683 PUT_AOUTHDR_TSIZE (abfd, aouthdr_in->tsize, aouthdr_out->tsize);
684 PUT_AOUTHDR_DSIZE (abfd, aouthdr_in->dsize, aouthdr_out->dsize);
685 PUT_AOUTHDR_BSIZE (abfd, aouthdr_in->bsize, aouthdr_out->bsize);
686 PUT_AOUTHDR_ENTRY (abfd, aouthdr_in->entry, aouthdr_out->entry);
252b5132 687 PUT_AOUTHDR_TEXT_START (abfd, aouthdr_in->text_start,
dc810e39 688 aouthdr_out->text_start);
252b5132 689 PUT_AOUTHDR_DATA_START (abfd, aouthdr_in->data_start,
dc810e39 690 aouthdr_out->data_start);
252b5132
RH
691
692#ifdef I960
dc810e39 693 H_PUT_32 (abfd, aouthdr_in->tagentries, aouthdr_out->tagentries);
252b5132
RH
694#endif
695
696#ifdef RS6000COFF_C
7f6d05e8 697#ifdef XCOFF64
dc810e39 698 H_PUT_64 (abfd, aouthdr_in->o_toc, aouthdr_out->o_toc);
7f6d05e8 699#else
dc810e39
AM
700 H_PUT_32 (abfd, aouthdr_in->o_toc, aouthdr_out->o_toc);
701#endif
702 H_PUT_16 (abfd, aouthdr_in->o_snentry, aouthdr_out->o_snentry);
703 H_PUT_16 (abfd, aouthdr_in->o_sntext, aouthdr_out->o_sntext);
704 H_PUT_16 (abfd, aouthdr_in->o_sndata, aouthdr_out->o_sndata);
705 H_PUT_16 (abfd, aouthdr_in->o_sntoc, aouthdr_out->o_sntoc);
706 H_PUT_16 (abfd, aouthdr_in->o_snloader, aouthdr_out->o_snloader);
707 H_PUT_16 (abfd, aouthdr_in->o_snbss, aouthdr_out->o_snbss);
708 H_PUT_16 (abfd, aouthdr_in->o_algntext, aouthdr_out->o_algntext);
709 H_PUT_16 (abfd, aouthdr_in->o_algndata, aouthdr_out->o_algndata);
710 H_PUT_16 (abfd, aouthdr_in->o_modtype, aouthdr_out->o_modtype);
711 H_PUT_16 (abfd, aouthdr_in->o_cputype, aouthdr_out->o_cputype);
7f6d05e8 712#ifdef XCOFF64
dc810e39
AM
713 H_PUT_64 (abfd, aouthdr_in->o_maxstack, aouthdr_out->o_maxstack);
714 H_PUT_64 (abfd, aouthdr_in->o_maxdata, aouthdr_out->o_maxdata);
7f6d05e8 715#else
dc810e39
AM
716 H_PUT_32 (abfd, aouthdr_in->o_maxstack, aouthdr_out->o_maxstack);
717 H_PUT_32 (abfd, aouthdr_in->o_maxdata, aouthdr_out->o_maxdata);
7f6d05e8 718#endif
252b5132 719 memset (aouthdr_out->o_resv2, 0, sizeof aouthdr_out->o_resv2);
7f6d05e8
CP
720#ifdef XCOFF64
721 memset (aouthdr_out->o_debugger, 0, sizeof aouthdr_out->o_debugger);
722 memset (aouthdr_out->o_resv3, 0, sizeof aouthdr_out->o_resv3);
723#endif
252b5132
RH
724#endif
725
726#ifdef MIPSECOFF
dc810e39
AM
727 H_PUT_32 (abfd, aouthdr_in->bss_start, aouthdr_out->bss_start);
728 H_PUT_32 (abfd, aouthdr_in->gp_value, aouthdr_out->gp_value);
729 H_PUT_32 (abfd, aouthdr_in->gprmask, aouthdr_out->gprmask);
730 H_PUT_32 (abfd, aouthdr_in->cprmask[0], aouthdr_out->cprmask[0]);
731 H_PUT_32 (abfd, aouthdr_in->cprmask[1], aouthdr_out->cprmask[1]);
732 H_PUT_32 (abfd, aouthdr_in->cprmask[2], aouthdr_out->cprmask[2]);
733 H_PUT_32 (abfd, aouthdr_in->cprmask[3], aouthdr_out->cprmask[3]);
252b5132
RH
734#endif
735
736#ifdef ALPHAECOFF
737 /* FIXME: What does bldrev mean? */
dc810e39
AM
738 H_PUT_16 (abfd, 2, aouthdr_out->bldrev);
739 H_PUT_16 (abfd, 0, aouthdr_out->padding);
740 H_PUT_64 (abfd, aouthdr_in->bss_start, aouthdr_out->bss_start);
741 H_PUT_64 (abfd, aouthdr_in->gp_value, aouthdr_out->gp_value);
742 H_PUT_32 (abfd, aouthdr_in->gprmask, aouthdr_out->gprmask);
743 H_PUT_32 (abfd, aouthdr_in->fprmask, aouthdr_out->fprmask);
252b5132
RH
744#endif
745
746 return AOUTSZ;
747}
748
749static void
7920ce38 750coff_swap_scnhdr_in (bfd * abfd, void * ext, void * in)
252b5132
RH
751{
752 SCNHDR *scnhdr_ext = (SCNHDR *) ext;
753 struct internal_scnhdr *scnhdr_int = (struct internal_scnhdr *) in;
754
755#ifdef COFF_ADJUST_SCNHDR_IN_PRE
756 COFF_ADJUST_SCNHDR_IN_PRE (abfd, ext, in);
757#endif
026df7c5
NC
758 memcpy (scnhdr_int->s_name, scnhdr_ext->s_name, sizeof (scnhdr_int->s_name));
759
dc810e39
AM
760 scnhdr_int->s_vaddr = GET_SCNHDR_VADDR (abfd, scnhdr_ext->s_vaddr);
761 scnhdr_int->s_paddr = GET_SCNHDR_PADDR (abfd, scnhdr_ext->s_paddr);
762 scnhdr_int->s_size = GET_SCNHDR_SIZE (abfd, scnhdr_ext->s_size);
763
764 scnhdr_int->s_scnptr = GET_SCNHDR_SCNPTR (abfd, scnhdr_ext->s_scnptr);
765 scnhdr_int->s_relptr = GET_SCNHDR_RELPTR (abfd, scnhdr_ext->s_relptr);
766 scnhdr_int->s_lnnoptr = GET_SCNHDR_LNNOPTR (abfd, scnhdr_ext->s_lnnoptr);
767 scnhdr_int->s_flags = GET_SCNHDR_FLAGS (abfd, scnhdr_ext->s_flags);
768 scnhdr_int->s_nreloc = GET_SCNHDR_NRELOC (abfd, scnhdr_ext->s_nreloc);
769 scnhdr_int->s_nlnno = GET_SCNHDR_NLNNO (abfd, scnhdr_ext->s_nlnno);
252b5132 770#ifdef I960
dc810e39 771 scnhdr_int->s_align = GET_SCNHDR_ALIGN (abfd, scnhdr_ext->s_align);
252b5132
RH
772#endif
773#ifdef COFF_ADJUST_SCNHDR_IN_POST
774 COFF_ADJUST_SCNHDR_IN_POST (abfd, ext, in);
775#endif
776}
777
778static unsigned int
7920ce38 779coff_swap_scnhdr_out (bfd * abfd, void * in, void * out)
252b5132 780{
dc810e39
AM
781 struct internal_scnhdr *scnhdr_int = (struct internal_scnhdr *) in;
782 SCNHDR *scnhdr_ext = (SCNHDR *) out;
6b3b007b 783 unsigned int ret = bfd_coff_scnhsz (abfd);
252b5132
RH
784
785#ifdef COFF_ADJUST_SCNHDR_OUT_PRE
786 COFF_ADJUST_SCNHDR_OUT_PRE (abfd, in, out);
787#endif
dc810e39 788 memcpy (scnhdr_ext->s_name, scnhdr_int->s_name, sizeof (scnhdr_int->s_name));
252b5132 789
dc810e39
AM
790 PUT_SCNHDR_VADDR (abfd, scnhdr_int->s_vaddr, scnhdr_ext->s_vaddr);
791 PUT_SCNHDR_PADDR (abfd, scnhdr_int->s_paddr, scnhdr_ext->s_paddr);
792 PUT_SCNHDR_SIZE (abfd, scnhdr_int->s_size, scnhdr_ext->s_size);
793 PUT_SCNHDR_SCNPTR (abfd, scnhdr_int->s_scnptr, scnhdr_ext->s_scnptr);
794 PUT_SCNHDR_RELPTR (abfd, scnhdr_int->s_relptr, scnhdr_ext->s_relptr);
795 PUT_SCNHDR_LNNOPTR (abfd, scnhdr_int->s_lnnoptr, scnhdr_ext->s_lnnoptr);
796 PUT_SCNHDR_FLAGS (abfd, scnhdr_int->s_flags, scnhdr_ext->s_flags);
252b5132 797#if defined(M88)
dc810e39
AM
798 H_PUT_32 (abfd, scnhdr_int->s_nlnno, scnhdr_ext->s_nlnno);
799 H_PUT_32 (abfd, scnhdr_int->s_nreloc, scnhdr_ext->s_nreloc);
252b5132 800#else
7f6d05e8 801 if (scnhdr_int->s_nlnno <= MAX_SCNHDR_NLNNO)
dc810e39 802 PUT_SCNHDR_NLNNO (abfd, scnhdr_int->s_nlnno, scnhdr_ext->s_nlnno);
252b5132
RH
803 else
804 {
805 char buf[sizeof (scnhdr_int->s_name) + 1];
806
807 memcpy (buf, scnhdr_int->s_name, sizeof (scnhdr_int->s_name));
808 buf[sizeof (scnhdr_int->s_name)] = '\0';
809 (*_bfd_error_handler)
810 (_("%s: warning: %s: line number overflow: 0x%lx > 0xffff"),
811 bfd_get_filename (abfd),
812 buf, scnhdr_int->s_nlnno);
dc810e39 813 PUT_SCNHDR_NLNNO (abfd, 0xffff, scnhdr_ext->s_nlnno);
252b5132 814 }
026df7c5 815
7f6d05e8 816 if (scnhdr_int->s_nreloc <= MAX_SCNHDR_NRELOC)
dc810e39 817 PUT_SCNHDR_NRELOC (abfd, scnhdr_int->s_nreloc, scnhdr_ext->s_nreloc);
252b5132
RH
818 else
819 {
820 char buf[sizeof (scnhdr_int->s_name) + 1];
821
822 memcpy (buf, scnhdr_int->s_name, sizeof (scnhdr_int->s_name));
823 buf[sizeof (scnhdr_int->s_name)] = '\0';
824 (*_bfd_error_handler) (_("%s: %s: reloc overflow: 0x%lx > 0xffff"),
825 bfd_get_filename (abfd),
826 buf, scnhdr_int->s_nreloc);
827 bfd_set_error (bfd_error_file_truncated);
dc810e39 828 PUT_SCNHDR_NRELOC (abfd, 0xffff, scnhdr_ext->s_nreloc);
252b5132
RH
829 ret = 0;
830 }
831#endif
832
833#ifdef I960
dc810e39 834 PUT_SCNHDR_ALIGN (abfd, scnhdr_int->s_align, scnhdr_ext->s_align);
252b5132
RH
835#endif
836#ifdef COFF_ADJUST_SCNHDR_OUT_POST
837 COFF_ADJUST_SCNHDR_OUT_POST (abfd, in, out);
838#endif
839 return ret;
840}
This page took 0.734287 seconds and 4 git commands to generate.