Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(485)

Side by Side Diff: libiberty/simple-object-mach-o.c

Issue 124383005: GDB 7.6.50 (Closed) Base URL: http://git.chromium.org/native_client/nacl-gdb.git@upstream
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « libiberty/simple-object-common.h ('k') | libiberty/simple-object-xcoff.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* simple-object-mach-o.c -- routines to manipulate Mach-O object files. 1 /* simple-object-mach-o.c -- routines to manipulate Mach-O object files.
2 Copyright 2010, 2011 Free Software Foundation, Inc. 2 Copyright 2010, 2011, 2013 Free Software Foundation, Inc.
3 Written by Ian Lance Taylor, Google. 3 Written by Ian Lance Taylor, Google.
4 4
5 This program is free software; you can redistribute it and/or modify it 5 This program is free software; you can redistribute it and/or modify it
6 under the terms of the GNU General Public License as published by the 6 under the terms of the GNU General Public License as published by the
7 Free Software Foundation; either version 2, or (at your option) any 7 Free Software Foundation; either version 2, or (at your option) any
8 later version. 8 later version.
9 9
10 This program is distributed in the hope that it will be useful, 10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of 11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
425 unsigned int nametab_index; 425 unsigned int nametab_index;
426 unsigned int sections_index; 426 unsigned int sections_index;
427 char *strtab; 427 char *strtab;
428 char *nametab; 428 char *nametab;
429 unsigned char *index; 429 unsigned char *index;
430 size_t strtab_size; 430 size_t strtab_size;
431 size_t nametab_size; 431 size_t nametab_size;
432 size_t index_size; 432 size_t index_size;
433 unsigned int n_wrapped_sects; 433 unsigned int n_wrapped_sects;
434 size_t wrapper_sect_size; 434 size_t wrapper_sect_size;
435 off_t wrapper_sect_offset; 435 off_t wrapper_sect_offset = 0;
436 436
437 fetch_32 = (omr->is_big_endian 437 fetch_32 = (omr->is_big_endian
438 ? simple_object_fetch_big_32 438 ? simple_object_fetch_big_32
439 : simple_object_fetch_little_32); 439 : simple_object_fetch_little_32);
440 440
441 is_32 = omr->magic == MACH_O_MH_MAGIC; 441 is_32 = omr->magic == MACH_O_MH_MAGIC;
442 442
443 if (is_32) 443 if (is_32)
444 { 444 {
445 seghdrsize = sizeof (struct mach_o_segment_command_32); 445 seghdrsize = sizeof (struct mach_o_segment_command_32);
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 694
695 name = strtab + stringoffset; 695 name = strtab + stringoffset;
696 } 696 }
697 } 697 }
698 } 698 }
699 else 699 else
700 { 700 {
701 /* Otherwise, make a name like __segment,__section as per the 701 /* Otherwise, make a name like __segment,__section as per the
702 convention in mach-o asm. */ 702 convention in mach-o asm. */
703 name = &namebuf[0]; 703 name = &namebuf[0];
704 memset (namebuf, 0, MACH_O_NAME_LEN * 2 + 2);
705 memcpy (namebuf, (char *) sechdr + segname_offset, MACH_O_NAME_LEN); 704 memcpy (namebuf, (char *) sechdr + segname_offset, MACH_O_NAME_LEN);
705 namebuf[MACH_O_NAME_LEN] = '\0';
706 l = strlen (namebuf); 706 l = strlen (namebuf);
707 namebuf[l] = ','; 707 namebuf[l] = ',';
708 memcpy (namebuf + l + 1, (char *) sechdr + sectname_offset, 708 memcpy (namebuf + l + 1, (char *) sechdr + sectname_offset,
709 MACH_O_NAME_LEN); 709 MACH_O_NAME_LEN);
710 namebuf[l + 1 + MACH_O_NAME_LEN] = '\0';
710 } 711 }
711 712
712 simple_object_mach_o_section_info (omr->is_big_endian, is_32, sechdr, 713 simple_object_mach_o_section_info (omr->is_big_endian, is_32, sechdr,
713 &secoffset, &secsize); 714 &secoffset, &secsize);
714 715
715 if (!(*pfn) (data, name, secoffset, secsize)) 716 if (!(*pfn) (data, name, secoffset, secsize))
716 { 717 {
717 *errmsg = NULL; 718 *errmsg = NULL;
718 *err = 0; 719 *err = 0;
719 XDELETEVEC (index); 720 XDELETEVEC (index);
(...skipping 648 matching lines...) Expand 10 before | Expand all | Expand 10 after
1368 simple_object_mach_o_match, 1369 simple_object_mach_o_match,
1369 simple_object_mach_o_find_sections, 1370 simple_object_mach_o_find_sections,
1370 simple_object_mach_o_fetch_attributes, 1371 simple_object_mach_o_fetch_attributes,
1371 simple_object_mach_o_release_read, 1372 simple_object_mach_o_release_read,
1372 simple_object_mach_o_attributes_merge, 1373 simple_object_mach_o_attributes_merge,
1373 simple_object_mach_o_release_attributes, 1374 simple_object_mach_o_release_attributes,
1374 simple_object_mach_o_start_write, 1375 simple_object_mach_o_start_write,
1375 simple_object_mach_o_write_to_file, 1376 simple_object_mach_o_write_to_file,
1376 simple_object_mach_o_release_write 1377 simple_object_mach_o_release_write
1377 }; 1378 };
OLDNEW
« no previous file with comments | « libiberty/simple-object-common.h ('k') | libiberty/simple-object-xcoff.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698