• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/bin/
libz.so.1 __gmon_start__ _Jv_RegisterClasses _fini compressBound _init inflate inflateReset compress inflateInit_ inflateEnd libdl.so.2 dlopen dlsym dlclose libc.so.6 _IO_stdin_used globfree64 fflush strcpy __rawmemchr fnmatch _IO_putc strncmp optind strrchr __strdup dcgettext mmap64 glob64 ftell strncpy time unlink putchar realloc abort stdin _exit strpbrk chmod sbrk rewind isatty feof fgets calloc strlen memset strstr strcspn __errno_location fseek __fxstat64 stdout fputc fseeko64 getrusage fputs memcpy fclose __strtol_internal malloc strcat umask strcasecmp ftello64 realpath getgid asprintf __lxstat64 __xstat64 getenv sscanf optarg stderr _obstack_newchunk getuid getopt_long strncasecmp strncat fileno fwrite fread lseek64 strchr obstack_free fdopen qsort bsearch fcntl memmove fopen64 _obstack_begin bindtextdomain access _IO_getc opterr strcmp strerror __libc_start_main ferror vfprintf getopt_long_only snprintf __strtoul_internal __environ _edata __bss_start _end /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/lib GLIBC_2.1 GLIBC_2.0 GLIBC_2.2.3 GLIBC_2.3 GLIBC_2.2 
%P:%s: file format not recognized; treating as linker script Reducing stack by rule %d (line %lu): %P%F: unrecognised keyword in MRI style script '%s' %X%P:%S: unknown phdr type `%s' (try integer literal) %X%P:%S: PHDRS syntax error at `%s' %P%F:%S: %s in %s %P%F:%S: %s Stack now token %s ( nterm %s ( Deleting Starting parse Stack size increased to %lu Entering state %d Reading a token: Now at end of input. Next token is Shifting $%d = MRI style script fill value origin length *default* PT_GNU_EH_FRAME PT_GNU_STACK FILEHDR PHDRS FLAGS VERSION script global local extern -> $$ = syntax error Error: discarding Error: popping memory exhausted Cleanup: discarding lookahead Cleanup: popping PT_NULL PT_LOAD PT_DYNAMIC PT_INTERP PT_NOTE PT_SHLIB PT_PHDR PT_TLS $end $undefined LNAME '=' OREQ ANDEQ RSHIFTEQ LSHIFTEQ DIVEQ MULTEQ MINUSEQ PLUSEQ '?' ':' OROR ANDAND '|' '^' '&' '<' '>' '+' '-' '*' '/' '%' UNARY '(' ALIGN_K BLOCK BIND SQUAD LONG SHORT SECTIONS INSERT_K AFTER BEFORE DATA_SEGMENT_ALIGN DATA_SEGMENT_RELRO_END DATA_SEGMENT_END SORT_BY_NAME SORT_BY_ALIGNMENT '{' '}' SIZEOF_HEADERS OUTPUT_FORMAT FORCE_COMMON_ALLOCATION OUTPUT_ARCH INHIBIT_COMMON_ALLOCATION SEGMENT_START INCLUDE MEMORY REGION_ALIAS LD_FEATURE NOLOAD DSECT OVERLAY DEFINED TARGET_K SEARCH_DIR MAP NEXT SIZEOF ALIGNOF LOADADDR MAX_K MIN_K STARTUP HLL SYSLIB NOFLOAT NOCROSSREFS ORIGIN FILL LENGTH CREATE_OBJECT_SYMBOLS INPUT OUTPUT CONSTRUCTORS ALIGNMOD SUBALIGN PROVIDE PROVIDE_HIDDEN AS_NEEDED CHIP ABSOLUTE NEWLINE ENDWORD ORDER NAMEWORD ASSERT_K PUBLIC DEFSYMEND TRUNCATE INPUT_SCRIPT INPUT_MRI_SCRIPT INPUT_DEFSYM CASE EXTERN VERS_TAG VERS_IDENTIFIER GLOBAL VERSIONK INPUT_VERSION_SCRIPT KEEP ONLY_IF_RO ONLY_IF_RW SPECIAL EXCLUDE_FILE CONSTANT INPUT_DYNAMIC_LIST ',' ';' ')' '[' ']' '!' '~' $accept filename defsym_expr @1 mri_script_file @2 mri_script_lines mri_script_command @3 ordernamelist mri_load_name_list mri_abs_name_list casesymlist extern_name_list @4 extern_name_list_body @5 ifile_list ifile_p1 @6 @7 input_list @8 @9 @10 sec_or_group_p1 statement_anywhere @11 wildcard_name wildcard_spec exclude_name_list file_NAME_list input_section_spec_no_keep input_section_spec @12 statement @13 @14 statement_list statement_list_opt fill_exp fill_opt assign_op assignment opt_comma memory_spec_list_opt memory_spec_list memory_spec @15 @16 origin_spec length_spec attributes_opt attributes_list attributes_string startup high_level_library high_level_library_NAME_list low_level_library low_level_library_NAME_list floating_point_support nocrossref_list mustbe_exp @17 memspec_at_opt opt_at opt_align opt_subalign sect_constraint @18 @19 @20 @21 @22 @23 @24 @25 @26 @27 @28 @29 @30 atype opt_exp_with_type opt_exp_without_type opt_nocrossrefs memspec_opt phdr_opt overlay_section @31 @32 @33 phdrs phdr_list phdr @34 @35 phdr_type phdr_qualifiers phdr_val dynamic_list_file @36 dynamic_list_nodes dynamic_list_node dynamic_list_tag version_script_file @37 @38 vers_nodes vers_node verdep vers_tag vers_defns @39 @40 opt_semicolon ' S ( 7 ^ z ( = Y u : ^ s & ; P e z + I g E U e { ) < S f } 0 M l " F k - U d s : E U e u % 5 E U y ( 5 o * ? T e v = M m 0 W ~ A h 2 Y z 9 Z { 5 s $ E f v % : | S e 0 < M ^ o { 6 E U ] A i u 5 F P Z $ @ a C & X n n n n n * n n n n n = n n n v l R B & n b n 6 C [ Y n w n n n % n ' ( ) n * n n n n n n n n n n n n < M n N O P n n Q S U W + X n Y n \ n Z ] . B n n n / n n n n n n n n n n n n n h m n p n n q t u z n  _ f n n n n T / n 2 n n i j l r s n { | } w n n n n 3 n n n n n 3 o b b , n 0 n n n ! 7 n n $ n n n 6 = @ A B D F n n ^ I n n J R n n n  n n 3 n 3 n . n a c n n n n n n 3 n n n n n n n n n n n n n n n n n n n n n  n n n n n n n n n n 3 3 3 3 n Q 9 M v x a y ~ u 3 D S % ` & & & & n n n 3 3 3 n n n 3 3 n n n n b u n n n U n U n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n n 3 + n , n n n n n 3 n b b n n n n n n - n n n n n n n @ n n ! n n n n n n n n n n n $ n n n n n O n ) > n n [ 7 n K n n ^ n n n A W n _ 1 n n n n n s n n n 3 n n n n n n H < _ G n n n n n n n I K L n n n M P n d n Q n n n ? R n n n % K n n Y n n [ n d n n n n J h ` a b f i n n n d h 2 n n n l n G n n n 2 n T n x n ' n n n n n Z " % & ' Z n n n n n n * n n n Z n n n n n n n n " % ! 8 9 #$&'()*+,-./01234567:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ J H j T s [ 8 $ ; D E F G H p 9 6 7 8 ^ 8 9 6 7 8 @ 8 9 9 E 9 d h 8 h % \ h 6 7 b h 1 2 6 7 % o h ~ ! " # $ % ~ + , 8 h ~ h ~ % @ % z { | g h % % % % & ' ! " Y % [ ' 3 4 5 6 7 : ? % % D E F G H I % % % N O P Q R S T ! " K [ ] ! " % % ! % % % % l r k 9 n @ 9 9 H M ` % f g % 8 % % % r 9 % % @ % & ' % % % H % 8 M % 3 4 5 % % % % : $ % % ? % % % ` 9 % 9 I f g N O P Q R S T r @ [ ] H ? M l r 4 ` : < f g _ % % G 8 r % Y % ` d Z 9 % & ' } $ [ % & 8 3 4 5 % % : % ] ? I e N O P Q R S T 9 % % [ 8 ] 8 % % % % % % % % % 9 l % & ' ( % r % 8 % % % 3 4 5 % 9 % : $ ? d I N O P Q R S T [ ] l 8 r 0 % & ' c 3 4 5 P : ? I % & ' N O P Q R S T 3 4 5 [ ] : ? l I r N O P Q R S T [ ] l r ) * + , - 6 7 @ ! " \ ^ b f g r ! " . / 0 ; < = > @ A B C J K L M U V W X Y Z _ ` a f g $ r . / 0 ~ ; < = > @ A B C J K L M U V W X Y Z _ ` a f g r ! " ~ ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " & $ & @ @ c i j k l m n o p q s t v w x c } ~  i j k l m o p q s t v w x } ~  ! " % ! " ! " ! " ! " ! " ! " P d < ] h Y [ e t ` a t ` a ) ` a z P u ` a M u t t P E | u \ u i ` a [ O t c \ & u t - F K 6 t V b 6 u b x b = u H b I O v w M | y c r d O c X * c i # \ l m o p c A r s t u v b y 3 4 ~  ] ^ _ ` c z S ] ^ e f | O 7 Z 8 9 : 7 } t 8 9 ~  t u ! " U u $ d e f O > ! " < ! " B @ d ? > @ A + $ B 5 6 ' > 7 \ ( @ . A / 0 2 + 7 J 5 B ; _ < N 5 6 Q 2 R 7 @ S T U V W A P ^ f g + h w x z { j | } F B L N 5 6 j / 0 X 7 % c + k j k l m n o p q r . & " - 1 4 3 5 9 : < > ? O G C Q j k l m n o p q r O H T Y _ ` a h m  , n K 8 J i k D s t u v w x y z { | } ! " ~  5 6 ! " ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 ! " # $ % & ' 9 ( ) * + q , - . / 0 1 2 3 4 5 6 7 ! " 8 ! " 9 ! " ! " ! " ! " ! " ! " ! " ! " ! " ! " ' ! " ( ! " ) ! " * ! " + ! " , ! " E ! " W ! " ] ! " ^ ! " b ! " l ! " o ! " # ! " ! " ! " F F G G H H I J K L M N O P Q R S T U V I W X Y J K L M N O P Q R S T U V W X Y ! " ! " ! " ! " ! " ! " ! " ; F @ > < Q G J A B O P R o H = @ F ? B C D E A G . 3 6 W b V ^ ` Q K ^ ` C l 5 U 6 n ( 1 / ! $ % 4 & ' * R E Y Z > ] ` - 8 7 \ L Y c X _ a D i k j 7 4 6 L N H \ I J T m W c _ b Q K X + 2 0 , # " 5 9 S T O M ! ! V g ^ a S I ) : d a Z P N ! l ( ) : ; [ e e " $ ' * > 8 d p ] d # l ; M h U ! < 9 f [ ? ; % = / ! s r t 0 & q , ~ , v w q }  + - u - 1 - y x z { . | 2 3 n n n n n n n n n n n n . n n n n n n n $ n n n n 8 n n n 1 n n n n o n * n n n n n n n n n n n n n n # n n n n n n n n n n n n n n n n n n / n n n n n n n n n n n n n n n n n n n n n n o n n { Z 1 : % ; C s = > L ! R ? @ A B 6 I g D Z p [ n q C G = ; g D E a b z { | 8 8 . / 0 ; < = > @ A B C J K L M U V W X Y Z _ ` a f g r ~ & @ c i j k l m o p q s t v w x } ~  ~ 8 8 8 1 2 % % 8 % % % % % % % % % % % % % % % % & ' 3 4 5 : ? I N O P Q R S T [ ] l r n 9 9 @ h % % 8 % % % % % % % % % % % % % % % % % % % ! " 8 ~ 9 9 @ H ` 9 9 % h $ % % h 9 $ 8 % ( % D E F G H % % d Z d [ $ 9 % & $ 8 % % % e ] 9 ' % 9 % 8 8 ) * + , - 6 7 @ \ ^ b r 9 % % % % % 6 % 9 % 6 7 b 6 7 % % 8 % % % % % d $ 9 L M M M M &M /M 7M " $ & + + 1 2 7 8 9 : ; < = > ? @ A C E G J L N P R T S W Z Y ] a b d f h m p s v y |  & ( ' . / 3 4 9 > ? D H H L K R S V X \ ^ ` b d i p r v x z | ~ " $ & ( * , / 1 3 5 7 9 ; = ? A C E G I K M O Q S U W Y \ ^ ` b d f h j l n p r { }  ! & ( 0 3 5 9 : 9 C p s  % ) - 1 5 9 ? A " # & + - / 2 4 9 > B E J N S X ] b g j m p u z } ! % , 1 3 7 : < @ C D J K S T [ ` c f g l o p x z | ~ ! # % ' ) + - / 3 7 > E G H M O P T V W _ ` f j n o s u x z } ! & + 0 5 : A H O T [ ` b i p w | ! - 2 3 6 7 8 ? A B F L M Q R U W Z _ b c f g m o r w } z { | n i i j p o t t t s k k k & & c c l m q w w v x } ~ @ $  J % K % a % ; % ; % = % < > _ % ` % L % @ $ Z % ~ % 0 1 0 2 B % C % h % h % h % . 8 9 M % r % % 6 % 7 % 6 % 7 % 6 % 6 % 7 % 6 % 7 % 7 % 6 % % % % ^ b 6 % b % \ % r % @ $ ) * + , - f % g % A 8 9 @ $ [ ] % U % V % V % W % X Y % N % ! " I % : P % O % Q % R % % l % & % & % 3 % 4 % 5 % ? % ' % S % T % r % [ % ] % d d % & % e % 8 9 H 8 9 ` 8 9 @ $ D E F G H % % ( % ( % ' % Z 8 9 / 8 9 d % % 8 9 8 9 8 9 8 9 8 9 ~ 8 9 ~ 8 9 ~ ~ >M CM NM TM XM ]M cM lM uM {M M M M M M M M M M P `M M M Z M M M M M M JP M M M M M M M M 6 M TL N N N N -N DN UN bN tN xN |N N N N N N N N N O O O | O !O )O 2O =O d AO FO MO UO ^O dO jO rO vO O }O O O O O O O O O O > O O O O P Q O P O P P %P +P 4P N =P DP e N NP v WP dP uP P P P P P P P P P P P P P Q Q Q Q $Q (Q ,Q 0Q 4Q <Q EQ QQ TQ dQ gQ xQ Q Q Q Q Q Q Q Q XQ Q Q R R R R R "R %R 4 )R 9R LR PR ^R lR ~R R R R R R R R R L R R S ?M S S $S 9S JS VS ZS ^S jS vS S S S S S S S T $T 4T ?T ;T CT RT YT cT pT e! T T T T T T T T T T T T T ? T T T T T T U U U U "U (U 2U 7U ;U ?U IU YU bU tU xU U U U U U U U U U U U U V %F: macros nested too deeply redirect bad buffer in yy_scan_bytes() \%03o %F%P: EOF in comment ldlex.l in script in expression out of dynamic memory in yyensure_buffer_stack() out of dynamic memory in yy_scan_buffer() out of dynamic memory in yy_scan_bytes() out of dynamic memory in yy_create_buffer() %F:includes nested too deeply %F%s: file not recognized: %E %P:%S: ignoring invalid character `%s'%s fatal flex scanner internal error--end of buffer missed fatal error - scanner input buffer overflow %F%P: read in flex scanner failed out of dynamic memory in yy_get_next_buffer() fatal flex scanner internal error--no action found " 0 L ` P d , @ T x h | 0 D X l 4 H \ p @ T h | 0 D X l 4 H \ p $ 8 L ` t ( < P d x , v & : N b v * > R f z . B V j ~ 2 F Z n v 3 * > Z v v ; ; ; ; ; 4 ; ; ; ; ; ; - ; ; ; ; ; ; ; ; 4 ; ; ; ; ; ; ; ; ; ; ; ; ; ; 4 ; ; ; ; ; ; - ; ; ; ; ; ; ; ; 4 ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q & , + " # $ % - . ' ( ! t r * ) & , + " # $ % - . ' ( ! * ) $ % t r  " # $ % - . ( ! x x x   \ G u s > ? \ G > ? u s ; 5 c l X m | a C _ i ; 5 l m | C ; 5 c l X m | a C _ i V 7 4 k A ^ M L w b ` 7 4 k M V 7 4 k A ^ M L w b ` @ W B U 6 / j 2 K H ] I @ 6 j 2 H @ W B U 6 / j 2 K H ] I B = O v d f z q Y 3 = O v n z q = O v d f z q Y 3 ~ < T y ~ < y ~ < T y N N N 1 o p J o p 1 o p J e [ e e [ Q } 0 g } Q } 0 g Z F F Z F { E D { E D { E D : : : h h 8 8 8 P P 9 9 9 R R S S K K J J J L L J M M N N O O J J J J J P Q P J J J J P P P P P P P P P J J P J P P P P P P P P P P P P P P P P P P P P P P P P P P P J J J P J J J Q R J J J J J J J J R R J Z J J J J J J R b b b b b R R R R R R R R R J J b R J J J R S J S S J J S S S S S S S S S S S S S S S S S S S S S S S S S T J J T J J J U V W J J J V V Z Z J X J J V V V V V V V J J V V V V V V V J J Y J J Z J J J [ [ [ [ J J J P P Q J J J P P P P P P P J J P J J P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P J J J R R J J J \ J J Z Z - J J ] J b b b R R R R b R R R b b R R R R R R R R R R R R R R R R R R R b R S S ^ S J ] S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S T T U J V V W W X V V V V V V V V V V V V V V V V V V V V V V V V V V V J Y Z [ J [ [ [ J J P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P R \ ] R b R R R R R R R R b R R R R R R R R R R R R R R R R R R R R R R R S ^ S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S T V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V V [ [ [ P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R R S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S V V V V V V V V _ V V V V V V V V V V V V V V V ` V V V V V V V [ [ [ P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P R R R R R R R R R R R R R R R R R R R R R R R R R R S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S V V V V V a _ V V V V V V V V V b ` V V V V [ [ [ P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P R R R R R R R R R R R R R R R R R R R R R R R S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S V V V V V V V V V V V V [ [ P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P R R R R R R R R R R R R R R R R R R R S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S S V V V V V V P P P P P P P P P P P P P P P P P P P P P P P P P R R R R R R R R R R R R R R S S S S S S S S S S S S S S S S S S S S S S S S S V V V V V V P P P P P P P P P P P P P P P P P P P P R R R R R R R R R S S S S S S S S S S S S S S S S S S S S P P P P P P P P P P P P P P P P P P P P R R R R R R R R R S S S S S S S S S S S S S S S S S S S S P P P P P P P P P P P P P P P P R R R R R R R S S S S S S S S S S S S S S S S P P P P P P P P P P P P P P R R R R R R S S S S S S S S S S S S S S P P P P P P P P P P R R R R R S S S S S S S S S S P P P P P P P P P P R R R R R R S S S S S S S S S S P P P P P P P R R R S S S S S S S P P P P P P P R R R S S S S S S S P P P P P P R R S S S S S S P P P P P R R S S S S S P P P P R S S S S P P P P R S S S S P P P P R S S S S P P P R S S S P P S S P S P S J J J J J J J J J J J J J J J J J J J J J J J J Q C 5 A ; = ^ " D W ( & q 2 V X 5 A ; U g Z ' x T 9 7 W = O W v | A n { S ' x h d f v z w D z x r p } } m t p l n p v [ k h j ^ i k _ m m a n g ^ R Y e T g e S S R 3 6 ; , ) J M y V P N W X K T J V > G < G I L A H 4 H J t 7 E 4 > @ 7 5 / = - : : * 1 - ) + - " 3 ( 4 ( & & ( * * + $ & " $ " 2 B x A S V D x  x | t w ~ | s m n s o d u k h g b s m c ` f ` l \ l m [ k _ c V ; C W ` _ S ] T L [ Y X P G H K + 3 2 ' 0 ( ! . , + $ g > 7 : 5 A 3 9 / . " 2 + % ( * ' 5 ) # 5 " # / 1 ! - # # o  c k c L n l ? k u x ! 2 . 9 0 H & # + + ; 4 D > N } z ! ) . , . / 4 9 + ; 7 3 G E < E K D * ; B > N O W P C R U L < X T J ^ X f R Y l j l i d x w n v p r { o | t z X f w & g o p l v |  2 3 0 1 # 6 . 7 1 " - 7 8 , K / O N @ 5 M 7 I 4 2 U V H V ? M N B I J b ^ L M u w i { p y b x i t x y m o ~ t v s q x z z & % ! ( $ . 2 3 1 - * + . ( 8 < : . < 4 7 6 9 4 @ < F J K I E B - > O ? O G I V T F H [ ] e H Y i k ^ l S e v f v n p } { m o } |  a r h i z v x { ` q ~ f x y p x ; E O Y c k u | x $ $ ) ) + + - - 0 - . 0 . - / . / - - 1 2 0 9 2 Y . 2 7 7 1 8 H 9 8 Y v W 7 % % ; Q : [ % : % ; : : W ^ ^ Q ` ` H % k " v m > k [ > > l m % | % > > > l # > > % $ | > % z & & & c n c p n c p n c , & p & c c d p d ' d z d d d , & & e e e e g g e f v f g e e v f g g f f   f  (    ) * s s + s s s J s J = = , C C } } 8 e k e ~ ~ 8 } } k - _ ~ } ~ u _ . / u 0 } } } 1 ~ 2 ~ - - q q q 3 4 8 q 9 - q - O O = - > @ O O O O O O A 3 3 4 B 4 - C - 3 D 4 H I - 3 3 4 4 M O O O O O O Z Z N Y Y P Q Z Z Z Z Z Z T Z 5 Z 5 Z Y Z Y v 5 z v Z z 5 5 R U z Z Z Z Z Z Z : Z : Z W Z Y Z Y : X Z b b T : : Y b b b b b b b S > b > Z b ] b b > R b ^ \ > > _ b b b b b b ? b ? ? b \ b c S ? e g b y y h ? ? S j S y y y y y y S k l m S S n o p q r s t u w x y y y y y y y z S { } ~  % % % % % % % % % % % % % % % % % % V V V V V V V V V V " # % ' ( ) * + , - . / 0 2 4 5 6 7 V V V V V V 8 9 ; V < V = ? A C D F H I J K L M N O P Q R S V W X Y Z ^ _ ` d e f g i j k l m o p r s t u w x z { x | } ~  : : : : : : : : : : : : : : : : : : : : J J J J J J J J J J J J J J J J J ! " $ % & ' ( ) * + - J J J . , / , 0 1 2 3 4 5 6 7 8 9 : ; < > A B C D F G H I J K L M P Q R S T U V W X Y [ ^ _ ` a c d e f g h i j k l m p q r s t u v w x y { | } ~  ! " # $ % & ' ( ) * + , - . / 0 1 3 4 5 6 8 9 : < = @ A C E F G K K K K K K K K K K L L L L L L L L L L M M M M M M M M M M N N N N N N N N N N O O O O O O O O O O P P P P P P P P Q Q Q Q Q Q Q Q Q Q R R ] R R R R S S S S S S S T T T T U U U U U U U U U U V V V V V V W W W W W W W W W X X X X X X X X X Y Y Y Y Y Y Y Y Y Z Z [ [ [ [ [ \ \ \ \ \ \ ^ ^ ^ ^ ^ ^ ^ _ _ _ _ _ _ _ _ _ ` ` ` ` ` ` ` ` ` a a a a a a a a a b b b b b b b b b  ~ } | { y x w u r o n m l k j i h g f e d c b a ` _ ^ ] \ [ Z Y X W V T Q P O N M L K J I H F E D C B A @ ? > = < ; : 9 8 7 6 5 4 3 2 1 0 - , + * ) ( ' & % $ # " !  ~ } | { y x w t s r p o n m l j i h g f d c b a ^ ] \ [ T R Q P O N M L K I H G F E D B A @ < ; 7 t o j i h _ U T N M L F E D C @ ? = < 6 5 4 3 * " J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 # 6 7 8 9 : ; < = > ? # @ # # # # A # B # # C # # # # # # # # # D # # E # # F # # # # G H I J K L M N K O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h X i X j k l m n o X X p X X X X X X X q X r K X s g g g g g X X X X X X X X X X t X X X X u v w x K L M N K y P Q R S T U V z { | } ~ \ ] ^ _ ` a  { { { { { { q { r K { { { { { { { { { { { { { { { { { { u v w K K K K K K K K K K K } ~ K K K K K K K K * ! T + ! ( K K K K K K K K K K K K K K } ~ K K K K K e / f ) " E " K I K K F / G J * H X K K K ) + G H I ( / : K : j O L ; P M < / k Q $ $ : R : / a $ W b = y c l $ $ m / n z d > : g : ? h : v : $ w : R : x $ @ $ i S $ $ $ $ $ [ \ A ] s t {  ^ | } ~ u _ ` : : R $ $ $ " S # Y Y : A ; Y Y 0 0 B 4 0 Z 0 P 5 Q 0 0 Z 0 0 - - H b I c J d K J L J % % / % % % % % % : : : : J J $ $ / $ $ $ % % % % % % , , Y Y - . - . - - / : 0 0 0 / 0 3 $ W 4 1 X u $ $ Y - . - . - - : / : 0 0 0 / 0 $ 1 3 3 $ $ 3 4 3 5 3 3 w 6 : 7 : 6 x C 8 9 $ D 6 S $ 3 : 3 : 3 3 : 6 : 6 $ 6 V V $ $ : : V V V V V V : $ : 0 0 $ $ $ $ $ V V V V V V 0 0 , : : $ $ $ ! " # $ % & ' ( ) * + , - . / 0 1 2 3 6 7 8 4 9 : ; < = > ? @ 5 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d % % g h i j % % % % % % k l m n o p q r s t u v w x y z { | } ~  % % % % % % e f V V V V V V V V . . V V V V V V . . s s s s t t t t ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 6 7 8 9 : ; < = > ? A B 5 C D E F @ G H I J K L M N P Q R S T U V O W X Y Z [ ^ _ \ ` ] a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I $ $ $ $ $ $ U U U U U U U / / / / / / /  ~ } | { z y x w v u t s r q p o n m l k j i h g f e d c b a ` _ ^ ] \ [ Z Y X W V U Q P O N M L K J I H G F E B A @ ? > = < ; : 9 8 7 6 5 2 1 0 / . - , + * ) ( ' & % $ # " !  ~ } | { z y v r q p o n m l k j i h g f e a ` _ ^ ] \ [ Z V U T O N M G F E D C @ ? > = < 9 8 7 6 3 2 1 0 - + * ) ( ' & % $ ! * 2 + ( ' # r q p o T N D C B 2 ' & # J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J J yylex %P%F: invalid hex number `%s' %P%F: use the --help option for usage information %P%F: unrecognized -a option `%s' %P%F: unrecognized -assert option `%s' %F%P: unknown demangling style `%s' %s: emulation specific options: <http://www.sourceware.org/bugzilla/> %P%F: bad --unresolved-symbols option: %s %P%F: %s: error loading plugin %P%F: invalid common section sorting option: %s %P%F: invalid section sorting option: %s %P%F: invalid argument to option "--section-start" %P%F: missing argument(s) to option "--section-start" %P%F: group ended before it began (--help for usage) %P%X: --hash-size needs a numeric argument Shared library control for HP/UX compatibility Specify target for following input files Force common symbols to be defined Undo the effect of --export-dynamic Auxiliary filter for shared object symbol table Filter for shared object symbol table Small data size (if no size, same as --shared) Set internal name of shared library Set PROGRAM as the dynamic linker to use Add DIRECTORY to library search path Override the default sysroot location Print map file on standard output Do not page align data, do not make text readonly Page align data, make text readonly Send arg to last-loaded plugin Ignored for GCC LTO option compatibility Ignored for SVR4 compatibility Generate relocations in final output Just link symbols (if directory, same as --rpath) Strip symbols in discarded sections Do not strip symbols in discarded sections Start with undefined reference to SYMBOL Don't merge input [SECTION | orphan] sections Build global constructor/destructor tables Print version and emulation information Discard temporary local symbols (default) Don't discard any local symbols Default search path for Solaris compatibility Accept input files whose architecture cannot be determined Reject input files whose architecture is unknown Only set DT_NEEDED for following dynamic libs if used Always set DT_NEEDED for dynamic libraries mentioned on the command line Ignored for SunOS compatibility Do not link against shared libraries Bind global references locally Bind global function references locally Check section addresses for overlaps (default) Do not check section addresses for overlaps Copy DT_NEEDED links mentioned inside DSOs that follow Do not copy DT_NEEDED links mentioned inside DSOs that follow Demangle symbol names [using STYLE] Do not treat warnings as errors (default) Force generation of file with .exe suffix Remove unused sections (on some targets) Don't remove unused sections (default) List removed unused sections on stderr Do not list removed unused sections Set default hash table size close to <NUMBER> Use less memory and more disk I/O Do not allow unresolved references in object files Allow unresolved references in shared libaries Do not allow unresolved references in shared libs Create default symbol version for imported symbols Don't warn about mismatched input files Don't warn on finding an incompatible library Create an output file even if errors occur Only use library directories specified on the command line Ignored for Linux compatibility Reduce memory overheads, possibly taking much longer Reduce code size by using target specific optimizations Do not use relaxation techniques to reduce code size Keep only symbols listed in FILE Set runtime shared library search path Set link time shared library search path Create a position independent executable Sort common symbols by alignment [in specified order] Sort sections by name or maximum alignment How many tags to reserve in .dynamic section Split output sections every SIZE octets Split output sections every COUNT relocs Display target specific options Use same format as native linker How to handle unresolved symbols. <method> is: ignore-all, report-all, ignore-in-object-files, ignore-in-shared-libs Output lots of information during link Read version information script Take export symbols list from .exports, using SYMBOL as the version. Add data symbols to dynamic list Use C++ operator new/delete dynamic list Warn about duplicate common symbols Warn if global constructors/destructors are seen Warn if the multiple GP values are used Warn only once per undefined symbol Warn if start of section changes due to alignment Warn if shared object has DT_TEXTREL Warn if an object has alternate ELF machine code Report unresolved symbols as warnings Report unresolved symbols as errors Include all objects from following archives Use wrapper functions for SYMBOL -G --shared --library=%s %P: unrecognized option '%s' default nodefinitions nosymbolic pure-text %P%F: invalid number `%s' Usage: %s [options] file... Options: %s-%c %s-%s%s @FILE Read options from FILE %s: supported targets: %s: supported emulations: Report bugs to %s ignore-all report-all ignore-in-object-files ignore-in-shared-libs %P%F: bad -plugin-opt option %P%F: bad -rpath option %s%c%s %P%F: -shared not supported %P%F: -pie not supported descending ascending .data .text .text-segment P, KEYWORD Set architecture mri-script Read MRI format linker script dc dp Set start address Export all dynamic symbols no-export-dynamic EB Link big-endian objects Link little-endian objects auxiliary filter Ignored gpsize soname FILENAME dynamic-linker PROGRAM Search for library LIBNAME library-path DIRECTORY sysroot=<DIRECTORY> Set emulation print-map nmagic Do not page align data no-omagic Set output file name Optimize output file PLUGIN Load named plugin plugin-opt flto flto-partition= Qy emit-relocs relocatable Generate relocatable output just-symbols strip-all Strip all symbols strip-debug Strip debugging symbols no-strip-discarded trace Trace file opens Read linker script default-script Read default linker script dT unique [=SECTION] Ur Print version information discard-all Discard all local symbols discard-locals discard-none trace-symbol Trace mentions of SYMBOL start-group Start a group end-group End a group no-accept-unknown-input-arch no-add-needed no-as-needed assert Bdynamic Link against shared libraries call_shared Bstatic dn non_shared Bsymbolic Bsymbolic-functions no-check-sections no-copy-dt-needed-entries cref Output cross reference table defsym SYMBOL=EXPRESSION Define a symbol [=STYLE] embedded-relocs Generate embedded relocs Treat warnings as errors no-fatal-warnings Call SYMBOL at unload-time force-exe-suffix no-gc-sections no-print-gc-sections hash-size=<NUMBER> Print option help Call SYMBOL at load-time Map Write a map file no-define-common Do not define Common storage no-demangle Do not demangle symbol names no-keep-memory no-undefined no-allow-shlib-undefined allow-multiple-definition Allow multiple definitions no-undefined-version Disallow undefined version default-symver Create default symbol version default-imported-symver no-warn-mismatch no-warn-search-mismatch no-whole-archive Turn off --whole-archive noinhibit-exec noinhibit_exec nostdlib oformat Specify target of output file qmagic reduce-memory-overheads no-relax retain-symbols-file rpath rpath-link Create a shared library Bshareable pie pic-executable sort-common [=ascending|descending] sort_common sort-section name|alignment spare-dynamic-tags split-by-file [=SIZE] split-by-reloc [=COUNT] stats Print memory usage statistics target-help task-link Do task level linking traditional-format section-start SECTION=ADDRESS Set address of named section Tbss Set address of .bss section Tdata Set address of .data section Ttext Set address of .text section Ttext-segment Set address of text segment unresolved-symbols=<method> [=NUMBER] dll-verbose version-script version-exports-section dynamic-list-data dynamic-list-cpp-new dynamic-list-cpp-typeinfo Use C++ typeinfo dynamic list dynamic-list Read dynamic list warn-common warn-constructors warn-multiple-gp warn-once warn-section-align warn-shared-textrel warn-alternate-em warn-unresolved-symbols error-unresolved-symbols wrap [ I : ! | 9 [ 9 | a R @ f 0 ! j [ L : ` # w c N 9 $ v I : { U F 7 ( w h Y J ; ) z k < - | e V 6 t X a A A N b b c c c ( d d + d p e e ! . ^ E @ [ ( m p f f L F F | g G G ] h I l l L L $ L m Z 0 > M M t H n n O i N N f o o p O O < q q \ r r i R R s s ! 3 S S ? Z W j t t p hL T T DM u u Q 4 d v V x x X X % 2 y y Q ? Y X ( ( d r ) ) | 4 p H j h u 1 . C 4 @ l Z _ | < Q 1 ( . T @ | = R r e < Q w P 1 K f { . @ = L l U c ] { X 4 " . ; l J ] k s Q < ! )! ! .! J! ! P! m! ! s! ! ! ! ! ` ! ! ! ! @ ! Q ` " %" :" T" r" " " " < " p " " " " # L # t 4# Q F 4 4 p p p p p p 4 4 p 4 4 p K P P U Z b K P P U Z b s ( {( {( {( ( {( {( {( {( {( {( {( {( ( {( ( < h= 0= 0= = = 0= = = M> 0= 0= > > 0= E= B? B? c? j? r? I M L L M *N N O N "O L L ]O {O L L P P Q P Q mj k "l l l k o p Tq q q r r r es t t t s At u u [v gv u Cv Ov R d d d d d d d d d ) $ $ ~ B p 5 p p compare_section lang_do_assignments_1 lang_size_sections_1 print_data_statement load_symbols pop_stat_ptr push_stat_ptr SANE_EXPR %X%P: unknown feature `%s' %P%F: multiple STARTUP files C++ Java operator new* operator delete* typeinfo name for* typeinfo for* ldlang.c ?*[ /DISCARD/ Allocating common symbols 0x%V %T elf32-big elf64-big elf32-little elf64-little %F%P: invalid data statement program header type load base __load_start_%s __load_stop_%s *?[ -l 0x%V %W %B %W (size before relaxing) Fail with %d SORT (CONSTRUCTORS) CONSTRUCTORS SORT( EXCLUDE_FILE(%s ) Address of section %s set to CREATE_OBJECT_SYMBOLS FILL mask 0x 0x%V %W %s 0x%v 0x%V %W RELOC %s %s+ *fill* 0x%V %W %s 0x%V %W load address 0x%V [0x%V] [unresolved] *undef* TARGET(%s) OUTPUT(%s LOAD %s START GROUP END GROUP INSERT %s %s %P%F: target %s not found %B: file not recognized: %E %B: matching formats: %F %I %F Discarded input sections Memory Configuration Attributes Length Origin Name %-16s %-18s %-18s %s %-16s 0x%s ! subsection alignment __start_%s __stop_%s .exports phdr flags phdr load address .startof.%s .sizeof.%s *ABS* ,: %P%F: invalid syntax in flags %X%P: address 0x%v of %B section `%s' is not within region `%s' %X%P: %B section `%s' will not fit in region `%s' %X%P: unable to find version dependency `%s' %X%P: anonymous version tag cannot be combined with other version tags %X%P: duplicate version tag `%s' %X%P: duplicate expression `%s' in version information %X%P: unknown language `%s' in version information %P%F: bfd_link_hash_lookup failed: %E %P%F: Could not define common symbol `%T': %E Common symbol size file %F%P: invalid reloc statement %X%P:%S: PHDRS and FILEHDR are not supported when prior PT_LOAD headers lack them %F%P:%S: error: alias for default memory region %F%P:%S: error: redefinition of memory region alias `%s' %F%P:%S: error: memory region `%s' for alias `%s' does not exist %P:%S: warning: redeclaration of memory region `%s' %P:%S: warning: memory region `%s' not declared %X%P:%S: section has both a load address and a load region %F%S: non constant or forward reference address expression for section %s %P%X: Internal error on COFF shared library section %s %P%F: error: no memory region specified for loadable section `%s' %P: warning: no memory region specified for loadable section `%s' %P: warning: changing start of section %s by %lu bytes %P: warning: dot moved backwards before `%s' %P%F: can't relax section: %E %P%F: bfd_hash_lookup failed creating symbol %s %P: warning: could not find any targets that match endianness requirement %P%F: cannot open output file %s: %E %P%F:%s: can not make object file: %E %P%F:%s: can not set architecture: %E %P%F: can not create hash table: %E %F%B: file not recognized: %E %F%B: member %B in archive is not an object %F%B: could not read symbols: %E %P: warning: %s contains output sections; did you forget -T? Linker script and memory map %P%F: bfd_hash_allocate failed creating symbol %s %P%F: failed creating section `%s': %E %P%F: Illegal use of `%s' section %P%F: output format %s cannot represent section called %s %P%F: Failed to create hash table %P%F: %s: plugin reported error after all symbols read %P%F: Relocatable linking with relocations from format %s (%B) to format %s (%B) is not supported %P%X: %s architecture of input file `%B' is incompatible with %s output %P%X: failed to merge target specific data of file %B %X%P: unable to read .exports section contents %F%P: %s not found for insert %F%P: bfd_record_phdr failed: %E %X%P: section `%s' assigned to non-existent phdr `%s' %X%P: section %s loaded at [%V,%V] overlaps section %s loaded at [%V,%V] %X%P: region `%s' overflowed by %ld bytes %P%F: gc-sections requires either an entry or an undefined symbol %P%F:%s: can't set start address %P%F: can't set start address %P: warning: cannot find entry symbol %s; defaulting to %V %P: warning: cannot find entry symbol %s; not setting start address %F%P: no sections assigned to phdrs IEEE ieee COFF coff-m68k %P%F: unknown format type %s mri.c mri_alias %P%X: %s does not support reloc %s for set %s %P%X: Unsupported size %d for set %s %P%X: Different relocs used in set %s %P%X: Different object file formats composing set %s Set Symbol %G %X%C: reloc refers to symbol `%T' which is not being output %X%C: dangerous relocation: %s %X%P: error: duplicate retain-symbols-file %P%F: bfd_hash_table_init failed: %E %P%F: bfd_hash_lookup for insertion failed: %E %P: `-retain-symbols-file' overrides `-s' and `-S' %P%F: bfd_hash_lookup failed: %E additional relocation overflows omitted from the output relocation truncated to fit: %s against undefined symbol `%T' relocation truncated to fit: %s against symbol `%T' defined in %A section in %B relocation truncated to fit: %s against `%T' %X%C: multiple definition of `%T' %P: Disabling relaxation: it will not work with multiple definitions %F%P: bfd_hash_table_init failed: %E %F%P: bfd_hash_lookup failed: %E %X%C: undefined reference to `%T' %C: warning: undefined reference to `%T' %X%D: more undefined references to `%T' follow %D: warning: more undefined references to `%T' follow %X%B: undefined reference to `%T' %B: warning: undefined reference to `%T' %X%B: more undefined references to `%T' follow %B: warning: more undefined references to `%T' follow %B%F: could not read symbols: %E %B%F: could not read relocs: %E %P: warning: global constructor %s used %P%F: BFD backend error: BFD_RELOC_CTOR unsupported %B: warning: definition of `%T' overriding common %B: warning: common of `%T' overridden by definition %B: warning: common of `%T' overridden by larger common %B: warning: larger common is here %B: warning: common of `%T' overriding smaller common %B: warning: smaller common is here %B: warning: multiple common of `%T' %B: warning: previous common is here Archive member included because of file (symbol) /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/arm-brcm-linux-uclibcgnueabi/sysroot /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/share/locale /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/bin /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/arm-brcm-linux-uclibcgnueabi/bin %X%P: can't set BFD default target to `%s': %E %P%F: -r and -shared may not be used together %P%F: -F may not be used without -shared %P%F: -f may not be used without -shared ================================================== %P%F: cannot open map file %s: %E %P: link errors found, deleting executable `%s' %X%P: unable to open for source of copy `%s' %X%P: unable to open for destination of copy `%s' %s: total time in link: %ld.%06ld %X%P: %s: %E %B: reference to %s %B: definition of %s %X%C: ./ldmain.c +%v %D: first defined here %X using multiple gp values warning: %C: %s%s %P: %s%s %B: %s%s %B: warning: common is here %B: warning: defined here %s(%s) %B (%T) --sysroot= arm-brcm-linux-uclibcgnueabi COLLECT_NO_DEMANGLE _init _fini LDEMULATION armelf_linux_eabi -m %P%F: missing argument to -m -mips1 -mips2 -mips3 -mips4 -mips5 -mips32 -mips32r2 -mips64 -mips64r2 -m486 using external linker script: using internal linker script: %P%F: no input files %P: mode %s %F%B: final close failed: %E .exe .dll %P: Error writing file `%s' %P: Error closing file `%s' %s: data size %ld a.out A A O O c reloc_overflow multiple_definition .stab $GDB_STRINGS$ $GDB_SYMBOLS$ %F%P: final link failed: %E ldwrite.c %F%P: cannot create split section name for %s %F%P: clone section failed: %E %P%F: bfd_new_link_order failed = build_link_order <code %d> NULL TREE %B: %s+0x%v PROVIDE (%s, ASSERT ( , %s) (%s) ldexp.c %X%P: %s %F%S %% by zero %F%S / by zero MAXPAGESIZE COMMONPAGESIZE += -= *= /= <<= >>= &= |= || && == != << >> MAX MIN ASSERT @ L " X c ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] O M M M M M 6 M ) |N 0 N 8 !O 9 c : 2O ; =O < d = AO ? MO > FO @ A UO z P [ P B ] C ] a ] h $ N % -N & DN J O L O . N %P: warning: address of `%s' isn't multiple of maximum page size %F%S can not PROVIDE assignment to location counter %F%S invalid assignment to location counter %F%S assignment to location counter invalid outside of SECTION %F%S cannot move location counter backwards (from %V to %V) %P%F:%s: hash creation failed %X%S: unresolvable symbol `%s' referenced in expression %F%S: undefined symbol `%s' referenced in expression %F%S: undefined section `%s' referenced in expression %F%S: undefined MEMORY region `%s' referenced in expression %F%S: unknown constant `%s' referenced in expression %F%S: nonconstant expression for %s %s: Supported emulations: %S HLL ignored %S SYSLIB ignored GNUTARGET no emulation specific options. %P: unrecognised emulation mode: %s GNU ld %s (GNU Binutils) 2.21.1 Supported emulations: %s Copyright 2011 Free Software Foundation, Inc. This program is free software; you may redistribute it under the terms of the GNU General Public License version 3 or (at your option) a later version. This program has absolutely no warranty. 0x%s no symbol %s generated --defsym %s %s:%u built in linker script:%u %s+0x%v (type %s) %B: In function `%T': %s: %T %B:(%A+0x%v) %p %%%c %P%F: please report this bug %F%P: internal error %s %d %P: internal error: aborting at %s line %d in %s %P: internal error: aborting at %s line %d % % # # ^& <$ # " " H" g% $ $ N$ L& ," ! ! ! j! ! %P%F: cannot represent machine `%s' /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/lib %P%F: cannot open linker script file %s: %E %F%P: invalid BFD target `%s' %P: skipping incompatible %s when searching for %s %F%P: attempted static link of dynamic object `%s' /ldscripts cannot find script file %s opened script file %s attempt to open %s failed attempt to open %s succeeded %P: cannot find %s (%s): %E %P: cannot find %s: %E .a %P: cannot find %s inside %s %P: cannot find %s y %X%C: prohibited cross reference from %s to `%T' in %s %P: symbol `%T' missing from main hash table %X%P: bfd_hash_table_init of cref table failed: %E %X%P: cref_hash_lookup failed: %E Cross Reference Table Symbol File No symbols ldcref.c %X%P: cref alloc failed: %E <no plugin> plugin.c _onload (symbol from plugin) %P%F: %P%X: %P: %s: error in plugin cleanup (ignored) %P%F: %s: plugin symbol table corrupt (sym type %d) %P: %B: symbol `%s' definition: %d, visibility: %d, resolution: %d %P%F: unknown ELF symbol visibility: %d! %P%F: %s: non-ELF symbol in ELF BFD! could not create dummy IR bfd: %F%E %P%F: %s: plugin reported error claiming file xK M xK M xK 6M CM PM ]M jM wM M M M M M M M T U U U T /* Script for ld -r: link without relocation */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0 .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0 .fini 0 : { KEEP (*(.fini)) } =0 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .preinit_array 0 : { KEEP (*(.preinit_array)) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for ld -Ur: link w/out relocation, do create constructors */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0 .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0 .fini 0 : { KEEP (*(.fini)) } =0 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .preinit_array 0 : { KEEP (*(.preinit_array)) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -N: mix text and data on same page; don't align data */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n: mix text and data on same page */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); PROVIDE_HIDDEN (__rela_iplt_end = .); } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); PROVIDE_HIDDEN (__rela_iplt_end = .); } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for ld -pie: link position independent executable */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.iplt) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.iplt) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for ld --shared: link shared library */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); PROVIDE_HIDDEN (__rela_iplt_end = .); } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); PROVIDE_HIDDEN (__rela_iplt_end = .); } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } %P%F: --just-symbols may not be used on DSO: %B --build-id[=STYLE] Generate build ID note --audit=AUDITLIB Specify a library to use for auditing -P AUDITLIB, --depaudit=AUDITLIB Specify a library to use for auditing dependencies -Bgroup Selects group name lookup rules for DSO --disable-new-dtags Disable new dynamic tags --enable-new-dtags Enable new dynamic tags --eh-frame-hdr Create .eh_frame_hdr section --hash-style=STYLE Set hash style to sysv, gnu or both -z combreloc Merge dynamic relocs into one section and sort -z defs Report unresolved symbols in object files. -z execstack Mark executable as requiring executable stack -z initfirst Mark DSO to be initialized first at runtime -z interpose Mark object to interpose all DSOs but executable -z lazy Mark object lazy runtime binding (default) -z loadfltr Mark object requiring immediate process -z muldefs Allow multiple definitions -z nocombreloc Don't merge dynamic relocs into one section -z nocopyreloc Don't create copy relocs -z nodefaultlib Mark object not to use default search paths -z nodelete Mark DSO non-deletable at runtime -z nodlopen Mark DSO not available to dlopen -z nodump Mark DSO not available to dldump -z noexecstack Mark executable as not requiring executable stack -z norelro Don't create RELRO program header -z now Mark object non-lazy runtime binding -z origin Mark object requiring immediate $ORIGIN processing at runtime -z relro Create RELRO program header -z max-page-size=SIZE Set maximum page size to SIZE -z common-page-size=SIZE Set common page size to SIZE -z KEYWORD Ignored for Solaris compatibility --thumb-entry=<sym> Set the entry point to be Thumb symbol <sym> --be8 Output BE8 format image --target1-rel Interpret R_ARM_TARGET1 as R_ARM_REL32 --target1-abs Interpret R_ARM_TARGET1 as R_ARM_ABS32 --target2=<type> Specify definition of R_ARM_TARGET2 --fix-v4bx Rewrite BX rn as MOV pc, rn for ARMv4 --fix-v4bx-interworking Rewrite BX rn branch to ARMv4 interworking veneer --use-blx Enable use of BLX instructions --vfp11-denorm-fix Specify how to fix VFP11 denorm erratum --no-enum-size-warning Don't warn about objects with incompatible enum sizes --no-wchar-size-warning Don't warn about objects with incompatible wchar_t sizes --pic-veneer Always generate PIC interworking veneers --stub-group-size=N Maximum size of a group of input sections that can be handled by one stub section. A negative value locates all stubs after their branches (with a group size of -N), while a positive value allows two groups of input sections, one before, and one after each stub section. Values of +/-1 indicate the linker should choose suitable defaults. --[no-]fix-cortex-a8 Disable/enable Cortex-A8 Thumb-2 branch erratum fix --no-merge-exidx-entries Disable merging exidx entries %F%X%P: error: Cannot change output format whilst linking ARM binaries. %X%P: can not build stubs: %E %P: warning: '--thumb-entry %s' is overriding '-e %s' %P: warning: cannot find thumb start symbol %s Errors encountered processing file %s %P%F: failed to set dynamic section sizes: %E %F%B: Can't read contents of section .gnu.warning: %E %P%F: failed to record assignment to %s: %E %F%P: map sections to segments failed: %E %X%P: could not compute sections lists for stub generation: %E %X%P: cannot size stub section: %E %X%P: can not make stub section: %E %F%P:%B: bfd_elf_get_bfd_needed_list failed: %E %P: warning: unrecognized --build-id style ignored. %P: warning: Cannot create .note.gnu.build-id section, --build-id ignored. %P: warning: Cannot create .eh_frame_hdr section, --eh-frame-hdr ignored. /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/etc/ld.so.conf %P: warning: %s, needed by %B, not found (try using -rpath or -rpath-link) %P: warning: %s, needed by %B, may conflict with %s %P: warning: .note.gnu.build-id section discarded, --build-id ignored. %P%F: invalid hash style `%s' %P%F: invalid maxium page size `%s' %P%F: invalid common page size `%s' Unrecognized VFP11 fix type '%s'. .rel.dyn .rela.dyn .rel .gnu.warning. .note earmelf_linux_eabi.c %s/lib%s%s.so linker stubs %X%P: can not create BFD %E LD_RUN_PATH .gnu.warning %P%F: looping in map_segments include libc.so %F%P:%B: bfd_stat failed: %E found %s at %s md5 uuid sha1 .note.gnu.build-id .eh_frame .eh_frame_hdr %s needed by %B /etc/ld.so.conf .so. /dev/urandom sysv both initfirst interpose loadfltr nodefaultlib nodelete nodlopen nodump lazy muldefs nocombreloc nocopyreloc noexecstack norelro max-page-size= common-page-size= scalar vector elf32-littlearm got-rel depaudit disable-new-dtags enable-new-dtags eh-frame-hdr exclude-libs hash-style Bgroup no-pipeline-knowledge thumb-entry be8 target1-rel target1-abs target2 fix-v4bx fix-v4bx-interworking use-blx vfp11-denorm-fix no-enum-size-warning pic-veneer stub-group-size no-wchar-size-warning no-fix-cortex-a8 no-merge-exidx-entries .rodata .interp .sdata .comment l l l l m m l l l l l l l l l l u Kv Cv u ?v u u I m j P s p - . / 0 1 2 7 ' 3 / 4 @ 5 U 6 ` 8 p 9 : ; < gldarmelf_linux_eabi_write_build_id_section read_hex /* Script for ld -r: link without relocation */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0 .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0 .fini 0 : { KEEP (*(.fini)) } =0 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .preinit_array 0 : { KEEP (*(.preinit_array)) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data 0 : { *(.data) } .data1 0 : { *(.data1) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for ld -Ur: link w/out relocation, do create constructors */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) /* For some reason, the Solaris linker makes bad executables if gld -r is used and the intermediate file has sections starting at non-zero addresses. Could be a Solaris ld bug, could be a GNU ld bug. But for now assigning the zero vmas works. */ SECTIONS { /* Read-only sections, merged into text segment: */ .interp 0 : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash 0 : { *(.hash) } .gnu.hash 0 : { *(.gnu.hash) } .dynsym 0 : { *(.dynsym) } .dynstr 0 : { *(.dynstr) } .gnu.version 0 : { *(.gnu.version) } .gnu.version_d 0: { *(.gnu.version_d) } .gnu.version_r 0: { *(.gnu.version_r) } .rel.init 0 : { *(.rel.init) } .rela.init 0 : { *(.rela.init) } .rel.text 0 : { *(.rel.text) } .rela.text 0 : { *(.rela.text) } .rel.fini 0 : { *(.rel.fini) } .rela.fini 0 : { *(.rela.fini) } .rel.rodata 0 : { *(.rel.rodata) } .rela.rodata 0 : { *(.rela.rodata) } .rel.data.rel.ro 0 : { *(.rel.data.rel.ro) } .rela.data.rel.ro 0 : { *(.rela.data.rel.ro) } .rel.data 0 : { *(.rel.data) } .rela.data 0 : { *(.rela.data) } .rel.tdata 0 : { *(.rel.tdata) } .rela.tdata 0 : { *(.rela.tdata) } .rel.tbss 0 : { *(.rel.tbss) } .rela.tbss 0 : { *(.rela.tbss) } .rel.ctors 0 : { *(.rel.ctors) } .rela.ctors 0 : { *(.rela.ctors) } .rel.dtors 0 : { *(.rel.dtors) } .rela.dtors 0 : { *(.rela.dtors) } .rel.got 0 : { *(.rel.got) } .rela.got 0 : { *(.rela.got) } .rel.bss 0 : { *(.rel.bss) } .rela.bss 0 : { *(.rela.bss) } .rel.iplt 0 : { *(.rel.iplt) } .rela.iplt 0 : { *(.rela.iplt) } .rel.plt 0 : { *(.rel.plt) } .rela.plt 0 : { *(.rela.plt) } .init 0 : { KEEP (*(.init)) } =0 .plt 0 : { *(.plt) } .iplt 0 : { *(.iplt) } .text 0 : { *(.text .stub) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) } =0 .fini 0 : { KEEP (*(.fini)) } =0 .rodata 0 : { *(.rodata) } .rodata1 0 : { *(.rodata1) } .ARM.extab 0 : { *(.ARM.extab) } .ARM.exidx 0 : { *(.ARM.exidx) } .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame 0 : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ /* Exception handling */ .eh_frame 0 : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table 0 : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata 0 : { *(.tdata) } .tbss 0 : { *(.tbss) } .preinit_array 0 : { KEEP (*(.preinit_array)) } .jcr 0 : { KEEP (*(.jcr)) } .dynamic 0 : { *(.dynamic) } .got 0 : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data 0 : { *(.data) SORT(CONSTRUCTORS) } .data1 0 : { *(.data1) } .bss 0 : { *(.dynbss) *(.bss) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ } /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } } /* Script for -N: mix text and data on same page; don't align data */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = .; /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -n: mix text and data on same page */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc -z now -z relro: position independent executable, combine & sort relocs */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); PROVIDE_HIDDEN (__rela_iplt_end = .); } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -pie -z combreloc: position independent executable, combine & sort relocs */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); PROVIDE_HIDDEN (__rela_iplt_end = .); } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for ld -pie: link position independent executable */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for --shared -z combreloc -z now -z relro: shared library, combine & sort relocs */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.iplt) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for --shared -z combreloc: shared library, combine & sort relocs */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) *(.rel.iplt) } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for ld --shared: link shared library */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ . = SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { *(.rel.iplt) } .rela.iplt : { *(.rela.iplt) } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { KEEP (*(.preinit_array)) } .init_array : { KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) } .fini_array : { KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc -z now -z relro: combine and sort reloc sections */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); PROVIDE_HIDDEN (__rela_iplt_end = .); } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } . = DATA_SEGMENT_RELRO_END (0, .); .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.dyn : { *(.rel.init) *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) *(.rel.fini) *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) *(.rel.ctors) *(.rel.dtors) *(.rel.got) *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); PROVIDE_HIDDEN (__rela_iplt_end = .); } .rela.dyn : { *(.rela.init) *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) *(.rela.fini) *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) *(.rela.ctors) *(.rela.dtors) *(.rela.got) *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) PROVIDE_HIDDEN (__rel_iplt_start = .); PROVIDE_HIDDEN (__rel_iplt_end = .); PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } /* Default linker script, for normal executables */ OUTPUT_FORMAT("elf32-bigarm", "elf32-bigarm", "elf32-littlearm") OUTPUT_ARCH(arm) ENTRY(_start) SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); SECTIONS { /* Read-only sections, merged into text segment: */ PROVIDE (__executable_start = SEGMENT_START("text-segment", 0x00008000)); . = SEGMENT_START("text-segment", 0x00008000) + SIZEOF_HEADERS; .interp : { *(.interp) } .note.gnu.build-id : { *(.note.gnu.build-id) } .hash : { *(.hash) } .gnu.hash : { *(.gnu.hash) } .dynsym : { *(.dynsym) } .dynstr : { *(.dynstr) } .gnu.version : { *(.gnu.version) } .gnu.version_d : { *(.gnu.version_d) } .gnu.version_r : { *(.gnu.version_r) } .rel.init : { *(.rel.init) } .rela.init : { *(.rela.init) } .rel.text : { *(.rel.text .rel.text.* .rel.gnu.linkonce.t.*) } .rela.text : { *(.rela.text .rela.text.* .rela.gnu.linkonce.t.*) } .rel.fini : { *(.rel.fini) } .rela.fini : { *(.rela.fini) } .rel.rodata : { *(.rel.rodata .rel.rodata.* .rel.gnu.linkonce.r.*) } .rela.rodata : { *(.rela.rodata .rela.rodata.* .rela.gnu.linkonce.r.*) } .rel.data.rel.ro : { *(.rel.data.rel.ro* .rel.gnu.linkonce.d.rel.ro.*) } .rela.data.rel.ro : { *(.rela.data.rel.ro* .rela.gnu.linkonce.d.rel.ro.*) } .rel.data : { *(.rel.data .rel.data.* .rel.gnu.linkonce.d.*) } .rela.data : { *(.rela.data .rela.data.* .rela.gnu.linkonce.d.*) } .rel.tdata : { *(.rel.tdata .rel.tdata.* .rel.gnu.linkonce.td.*) } .rela.tdata : { *(.rela.tdata .rela.tdata.* .rela.gnu.linkonce.td.*) } .rel.tbss : { *(.rel.tbss .rel.tbss.* .rel.gnu.linkonce.tb.*) } .rela.tbss : { *(.rela.tbss .rela.tbss.* .rela.gnu.linkonce.tb.*) } .rel.ctors : { *(.rel.ctors) } .rela.ctors : { *(.rela.ctors) } .rel.dtors : { *(.rel.dtors) } .rela.dtors : { *(.rela.dtors) } .rel.got : { *(.rel.got) } .rela.got : { *(.rela.got) } .rel.bss : { *(.rel.bss .rel.bss.* .rel.gnu.linkonce.b.*) } .rela.bss : { *(.rela.bss .rela.bss.* .rela.gnu.linkonce.b.*) } .rel.iplt : { PROVIDE_HIDDEN (__rel_iplt_start = .); *(.rel.iplt) PROVIDE_HIDDEN (__rel_iplt_end = .); } .rela.iplt : { PROVIDE_HIDDEN (__rela_iplt_start = .); *(.rela.iplt) PROVIDE_HIDDEN (__rela_iplt_end = .); } .rel.plt : { *(.rel.plt) } .rela.plt : { *(.rela.plt) } .init : { KEEP (*(.init)) } =0 .plt : { *(.plt) } .iplt : { *(.iplt) } .text : { *(.text.unlikely .text.*_unlikely) *(.text.exit .text.exit.*) *(.text.startup .text.startup.*) *(.text.hot .text.hot.*) *(.text .stub .text.* .gnu.linkonce.t.*) /* .gnu.warning sections are handled specially by elf32.em. */ *(.gnu.warning) *(.glue_7t) *(.glue_7) *(.vfp11_veneer) *(.v4_bx) } =0 .fini : { KEEP (*(.fini)) } =0 PROVIDE (__etext = .); PROVIDE (_etext = .); PROVIDE (etext = .); .rodata : { *(.rodata .rodata.* .gnu.linkonce.r.*) } .rodata1 : { *(.rodata1) } .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } PROVIDE_HIDDEN (__exidx_start = .); .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } PROVIDE_HIDDEN (__exidx_end = .); .eh_frame_hdr : { *(.eh_frame_hdr) } .eh_frame : ONLY_IF_RO { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RO { *(.gcc_except_table .gcc_except_table.*) } /* Adjust the address for the data segment. We want to adjust up to the same address within the page on the next page up. */ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1)); . = DATA_SEGMENT_ALIGN (CONSTANT (MAXPAGESIZE), CONSTANT (COMMONPAGESIZE)); /* Exception handling */ .eh_frame : ONLY_IF_RW { KEEP (*(.eh_frame)) } .gcc_except_table : ONLY_IF_RW { *(.gcc_except_table .gcc_except_table.*) } /* Thread Local Storage sections */ .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } .preinit_array : { PROVIDE_HIDDEN (__preinit_array_start = .); KEEP (*(.preinit_array)) PROVIDE_HIDDEN (__preinit_array_end = .); } .init_array : { PROVIDE_HIDDEN (__init_array_start = .); KEEP (*(SORT(.init_array.*))) KEEP (*(.init_array)) PROVIDE_HIDDEN (__init_array_end = .); } .fini_array : { PROVIDE_HIDDEN (__fini_array_start = .); KEEP (*(SORT(.fini_array.*))) KEEP (*(.fini_array)) PROVIDE_HIDDEN (__fini_array_end = .); } .ctors : { /* gcc uses crtbegin.o to find the start of the constructors, so we make sure it is first. Because this is a wildcard, it doesn't matter if the user does not actually link against crtbegin.o; the linker won't look for a file to match a wildcard. The wildcard also means that it doesn't matter which directory crtbegin.o is in. */ KEEP (*crtbegin.o(.ctors)) KEEP (*crtbegin?.o(.ctors)) /* We don't want to include the .ctor section from the crtend.o file until after the sorted ctors. The .ctor section from the crtend file contains the end of ctors marker and it must be last */ KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .ctors)) KEEP (*(SORT(.ctors.*))) KEEP (*(.ctors)) } .dtors : { KEEP (*crtbegin.o(.dtors)) KEEP (*crtbegin?.o(.dtors)) KEEP (*(EXCLUDE_FILE (*crtend.o *crtend?.o ) .dtors)) KEEP (*(SORT(.dtors.*))) KEEP (*(.dtors)) } .jcr : { KEEP (*(.jcr)) } .data.rel.ro : { *(.data.rel.ro.local* .gnu.linkonce.d.rel.ro.local.*) *(.data.rel.ro* .gnu.linkonce.d.rel.ro.*) } .dynamic : { *(.dynamic) } . = DATA_SEGMENT_RELRO_END (0, .); .got : { *(.got.plt) *(.igot.plt) *(.got) *(.igot) } .data : { PROVIDE (__data_start = .); *(.data .data.* .gnu.linkonce.d.*) SORT(CONSTRUCTORS) } .data1 : { *(.data1) } _edata = .; PROVIDE (edata = .); __bss_start = .; __bss_start__ = .; .bss : { *(.dynbss) *(.bss .bss.* .gnu.linkonce.b.*) *(COMMON) /* Align here to ensure that the .bss section occupies space up to _end. Align after .bss to ensure correct alignment even if the .bss section disappears because there are no input sections. FIXME: Why do we need it? When there is no .bss section, we don't pad the .data section. */ . = ALIGN(. != 0 ? 32 / 8 : 1); } _bss_end__ = . ; __bss_end__ = . ; . = ALIGN(32 / 8); . = ALIGN(32 / 8); __end__ = . ; _end = .; PROVIDE (end = .); . = DATA_SEGMENT_END (.); /* Stabs debugging sections. */ .stab 0 : { *(.stab) } .stabstr 0 : { *(.stabstr) } .stab.excl 0 : { *(.stab.excl) } .stab.exclstr 0 : { *(.stab.exclstr) } .stab.index 0 : { *(.stab.index) } .stab.indexstr 0 : { *(.stab.indexstr) } .comment 0 : { *(.comment) } /* DWARF debug sections. Symbols in the DWARF debugging sections are relative to the beginning of the section so we begin them at 0. */ /* DWARF 1 */ .debug 0 : { *(.debug) } .line 0 : { *(.line) } /* GNU DWARF 1 extensions */ .debug_srcinfo 0 : { *(.debug_srcinfo) } .debug_sfnames 0 : { *(.debug_sfnames) } /* DWARF 1.1 and DWARF 2 */ .debug_aranges 0 : { *(.debug_aranges) } .debug_pubnames 0 : { *(.debug_pubnames) } /* DWARF 2 */ .debug_info 0 : { *(.debug_info .gnu.linkonce.wi.*) } .debug_abbrev 0 : { *(.debug_abbrev) } .debug_line 0 : { *(.debug_line) } .debug_frame 0 : { *(.debug_frame) } .debug_str 0 : { *(.debug_str) } .debug_loc 0 : { *(.debug_loc) } .debug_macinfo 0 : { *(.debug_macinfo) } /* SGI/MIPS DWARF 2 extensions */ .debug_weaknames 0 : { *(.debug_weaknames) } .debug_funcnames 0 : { *(.debug_funcnames) } .debug_typenames 0 : { *(.debug_typenames) } .debug_varnames 0 : { *(.debug_varnames) } /* DWARF 3 */ .debug_pubtypes 0 : { *(.debug_pubtypes) } .debug_ranges 0 : { *(.debug_ranges) } .gnu.attributes 0 : { KEEP (*(.gnu.attributes)) } .note.gnu.arm.ident 0 : { KEEP (*(.note.gnu.arm.ident)) } /DISCARD/ : { *(.note.GNU-stack) *(.gnu_debuglink) *(.gnu.lto_*) } } earmelfb_linux_eabi.c armelfb_linux_eabi elf32-bigarm ` p p p p p p p p p p ` v p I m j P s p - . / 0 1 2 7 ' 3 / 4 @ 5 U 6 ` 8 p 9 : ; < gldarmelfb_linux_eabi_write_build_id_section read_hex __.SYMDEF archive.c !<thin> !<arch> !<bout> %-10ld %-7lo bfd %-12ld %-8lo ` #1/%lu %-ld: %-ld // ARFILENAMES/ ARFILENAMES/ // __.SYMDEF __.SYMDEF/ / /SYM64/ #1/20 __.SYMDEF SORTED Reading archive file mod timestamp Writing updated armap timestamp Warning: writing archive was slow: rewriting timestamp bfd_dont_truncate_arname UNKNOWN! binary unknown @ BFD %s assertion fail %s:%d Please report this bug. coff-go32 pe-i386 pei-i386 pe-x86-64 pei-x86-64 pe-arm-wince-little pei-arm-wince-little mach-o %s: BFD: %s[%s] Error reading %s: %s %s: %s No error System call error Invalid bfd target File in wrong format Invalid operation Memory exhausted No symbols No more archived files Malformed archive File format not recognized File format is ambiguous Section has no contents Bad value File truncated File too big #<Invalid error code> BFD %s internal error, aborting at %s line %d in %s BFD %s internal error, aborting at %s line %d Archive object file in wrong format Archive has no index; run ranlib to add one Nonrepresentable section on output Symbol needs debug section which does not exist H " l - D V q _bfd_set_gp_value _bfd_default_error_handler bfd_set_error bfdio.c 0 / - - - - @- 0- cache.c r+ w+ reopening %B: %s : 09 0< ; 4 8 `8 7 cache_bmmap bfd_cache_lookup_worker coff %s %s [%3ld] File endndx %ld %s : %4d : %-5s %s %s %s coffgen.c %B: bad string table size %lu .debug strange .file (sec %2d)(fl 0x%02x)(ty %3x)(scl %3d) (nx %d) 0x AUX scnlen 0x%lx nreloc %d nlnno %d checksum 0x%lx assoc %d comdat %d AUX tagndx %ld ttlsiz 0x%lx lnnos %ld next %ld AUX lnno %d size 0x%x tagndx %ld coff_fix_symbol_name invalid core object Deprecated %s called at %s line %d in %s %B: compiled for a big endian system and target is little endian %B: compiled for a little endian system and target is big endian %B: unable to get decompressed section %A Deprecated %s called libbfd.c _bfd_generic_get_section_contents_in_window bfd_get_bits bfd_put_bits .gnu_debuglink opncls.c 0 w,a Q m jp5 c d 2 y +L | ~ - d jHq A } mQ V l kdz b e O\ l cc= n;^ iL A` rqg <G K k 5l B @ l 2u\ E Y= 0 &: Q Q a !# V ( _ $ |o/ LhX a =-f A v q * q 3 x4 j-=m ld \c Qkkbal 0e N b l{ W eP | bI- | eL Xa M Q :t 0 A J =m j iC n4F g ` s- D 3_L | <q P A ' % hW o f a ^ )" = Y .;\ l t9G w & s c ;d >jm Zjz ' }D h i]Wb ge q6l knv + Zz J go C ` ~ 8R O g gW ?K6 H + L J 6`z A ` U g n1y iF a f o%6 hR w G "/& U ; ( Z + j \ 1 , [ d & c ju m ?6 g r W J z + {8 |! B hn [& w owG Z pj ; f\ e i b kaE l x T N 9a&g ` MGiI wn>Jj Z f @ ; 7S  G 0 0 S $ 6 )W T g #.zf Ja h] +o*7 Z - @ ` ` ` p bfd_fdopenr reloc.c .debug_ranges coff-Intel-little coff-Intel-big coff-z8k unused @@uninitialized@@ BFD_RELOC_64 BFD_RELOC_32 BFD_RELOC_26 BFD_RELOC_24 BFD_RELOC_16 BFD_RELOC_14 BFD_RELOC_8 BFD_RELOC_64_PCREL BFD_RELOC_32_PCREL BFD_RELOC_24_PCREL BFD_RELOC_16_PCREL BFD_RELOC_12_PCREL BFD_RELOC_8_PCREL BFD_RELOC_32_SECREL BFD_RELOC_32_GOT_PCREL BFD_RELOC_16_GOT_PCREL BFD_RELOC_8_GOT_PCREL BFD_RELOC_32_GOTOFF BFD_RELOC_16_GOTOFF BFD_RELOC_LO16_GOTOFF BFD_RELOC_HI16_GOTOFF BFD_RELOC_HI16_S_GOTOFF BFD_RELOC_8_GOTOFF BFD_RELOC_64_PLT_PCREL BFD_RELOC_32_PLT_PCREL BFD_RELOC_24_PLT_PCREL BFD_RELOC_16_PLT_PCREL BFD_RELOC_8_PLT_PCREL BFD_RELOC_64_PLTOFF BFD_RELOC_32_PLTOFF BFD_RELOC_16_PLTOFF BFD_RELOC_LO16_PLTOFF BFD_RELOC_HI16_PLTOFF BFD_RELOC_HI16_S_PLTOFF BFD_RELOC_8_PLTOFF BFD_RELOC_68K_GLOB_DAT BFD_RELOC_68K_JMP_SLOT BFD_RELOC_68K_RELATIVE BFD_RELOC_68K_TLS_GD32 BFD_RELOC_68K_TLS_GD16 BFD_RELOC_68K_TLS_GD8 BFD_RELOC_68K_TLS_LDM32 BFD_RELOC_68K_TLS_LDM16 BFD_RELOC_68K_TLS_LDM8 BFD_RELOC_68K_TLS_LDO32 BFD_RELOC_68K_TLS_LDO16 BFD_RELOC_68K_TLS_LDO8 BFD_RELOC_68K_TLS_IE32 BFD_RELOC_68K_TLS_IE16 BFD_RELOC_68K_TLS_IE8 BFD_RELOC_68K_TLS_LE32 BFD_RELOC_68K_TLS_LE16 BFD_RELOC_68K_TLS_LE8 BFD_RELOC_32_BASEREL BFD_RELOC_16_BASEREL BFD_RELOC_LO16_BASEREL BFD_RELOC_HI16_BASEREL BFD_RELOC_HI16_S_BASEREL BFD_RELOC_8_BASEREL BFD_RELOC_RVA BFD_RELOC_8_FFnn BFD_RELOC_32_PCREL_S2 BFD_RELOC_16_PCREL_S2 BFD_RELOC_23_PCREL_S2 BFD_RELOC_HI22 BFD_RELOC_LO10 BFD_RELOC_GPREL16 BFD_RELOC_GPREL32 BFD_RELOC_I960_CALLJ BFD_RELOC_NONE BFD_RELOC_SPARC_WDISP22 BFD_RELOC_SPARC22 BFD_RELOC_SPARC13 BFD_RELOC_SPARC_GOT10 BFD_RELOC_SPARC_GOT13 BFD_RELOC_SPARC_GOT22 BFD_RELOC_SPARC_PC10 BFD_RELOC_SPARC_PC22 BFD_RELOC_SPARC_WPLT30 BFD_RELOC_SPARC_COPY BFD_RELOC_SPARC_GLOB_DAT BFD_RELOC_SPARC_JMP_SLOT BFD_RELOC_SPARC_RELATIVE BFD_RELOC_SPARC_UA16 BFD_RELOC_SPARC_UA32 BFD_RELOC_SPARC_UA64 BFD_RELOC_SPARC_GOTDATA_HIX22 BFD_RELOC_SPARC_GOTDATA_LOX10 BFD_RELOC_SPARC_GOTDATA_OP BFD_RELOC_SPARC_JMP_IREL BFD_RELOC_SPARC_IRELATIVE BFD_RELOC_SPARC_BASE13 BFD_RELOC_SPARC_BASE22 BFD_RELOC_SPARC_10 BFD_RELOC_SPARC_11 BFD_RELOC_SPARC_OLO10 BFD_RELOC_SPARC_HH22 BFD_RELOC_SPARC_HM10 BFD_RELOC_SPARC_LM22 BFD_RELOC_SPARC_PC_HH22 BFD_RELOC_SPARC_PC_HM10 BFD_RELOC_SPARC_PC_LM22 BFD_RELOC_SPARC_WDISP16 BFD_RELOC_SPARC_WDISP19 BFD_RELOC_SPARC_7 BFD_RELOC_SPARC_6 BFD_RELOC_SPARC_5 BFD_RELOC_SPARC_PLT32 BFD_RELOC_SPARC_PLT64 BFD_RELOC_SPARC_HIX22 BFD_RELOC_SPARC_LOX10 BFD_RELOC_SPARC_H44 BFD_RELOC_SPARC_M44 BFD_RELOC_SPARC_L44 BFD_RELOC_SPARC_REGISTER BFD_RELOC_SPARC_REV32 BFD_RELOC_SPARC_TLS_GD_HI22 BFD_RELOC_SPARC_TLS_GD_LO10 BFD_RELOC_SPARC_TLS_GD_ADD BFD_RELOC_SPARC_TLS_GD_CALL BFD_RELOC_SPARC_TLS_LDM_HI22 BFD_RELOC_SPARC_TLS_LDM_LO10 BFD_RELOC_SPARC_TLS_LDM_ADD BFD_RELOC_SPARC_TLS_LDM_CALL BFD_RELOC_SPARC_TLS_LDO_HIX22 BFD_RELOC_SPARC_TLS_LDO_LOX10 BFD_RELOC_SPARC_TLS_LDO_ADD BFD_RELOC_SPARC_TLS_IE_HI22 BFD_RELOC_SPARC_TLS_IE_LO10 BFD_RELOC_SPARC_TLS_IE_LD BFD_RELOC_SPARC_TLS_IE_LDX BFD_RELOC_SPARC_TLS_IE_ADD BFD_RELOC_SPARC_TLS_LE_HIX22 BFD_RELOC_SPARC_TLS_LE_LOX10 BFD_RELOC_SPARC_TLS_DTPMOD32 BFD_RELOC_SPARC_TLS_DTPMOD64 BFD_RELOC_SPARC_TLS_DTPOFF32 BFD_RELOC_SPARC_TLS_DTPOFF64 BFD_RELOC_SPARC_TLS_TPOFF32 BFD_RELOC_SPARC_TLS_TPOFF64 BFD_RELOC_SPU_IMM7 BFD_RELOC_SPU_IMM8 BFD_RELOC_SPU_IMM10 BFD_RELOC_SPU_IMM10W BFD_RELOC_SPU_IMM16 BFD_RELOC_SPU_IMM16W BFD_RELOC_SPU_IMM18 BFD_RELOC_SPU_PCREL9a BFD_RELOC_SPU_PCREL9b BFD_RELOC_SPU_PCREL16 BFD_RELOC_SPU_LO16 BFD_RELOC_SPU_HI16 BFD_RELOC_SPU_PPU32 BFD_RELOC_SPU_PPU64 BFD_RELOC_SPU_ADD_PIC BFD_RELOC_ALPHA_GPDISP_HI16 BFD_RELOC_ALPHA_GPDISP_LO16 BFD_RELOC_ALPHA_GPDISP BFD_RELOC_ALPHA_LITERAL BFD_RELOC_ALPHA_ELF_LITERAL BFD_RELOC_ALPHA_LITUSE BFD_RELOC_ALPHA_HINT BFD_RELOC_ALPHA_LINKAGE BFD_RELOC_ALPHA_CODEADDR BFD_RELOC_ALPHA_GPREL_HI16 BFD_RELOC_ALPHA_GPREL_LO16 BFD_RELOC_ALPHA_BRSGP BFD_RELOC_ALPHA_NOP BFD_RELOC_ALPHA_BSR BFD_RELOC_ALPHA_LDA BFD_RELOC_ALPHA_BOH BFD_RELOC_ALPHA_TLSGD BFD_RELOC_ALPHA_TLSLDM BFD_RELOC_ALPHA_DTPMOD64 BFD_RELOC_ALPHA_GOTDTPREL16 BFD_RELOC_ALPHA_DTPREL64 BFD_RELOC_ALPHA_DTPREL_HI16 BFD_RELOC_ALPHA_DTPREL_LO16 BFD_RELOC_ALPHA_DTPREL16 BFD_RELOC_ALPHA_GOTTPREL16 BFD_RELOC_ALPHA_TPREL64 BFD_RELOC_ALPHA_TPREL_HI16 BFD_RELOC_ALPHA_TPREL_LO16 BFD_RELOC_ALPHA_TPREL16 BFD_RELOC_MIPS_JMP BFD_RELOC_MIPS16_JMP BFD_RELOC_MIPS16_GPREL BFD_RELOC_HI16 BFD_RELOC_HI16_S BFD_RELOC_LO16 BFD_RELOC_HI16_PCREL BFD_RELOC_HI16_S_PCREL BFD_RELOC_LO16_PCREL BFD_RELOC_MIPS16_GOT16 BFD_RELOC_MIPS16_CALL16 BFD_RELOC_MIPS16_HI16 BFD_RELOC_MIPS16_HI16_S BFD_RELOC_MIPS16_LO16 BFD_RELOC_MIPS_LITERAL BFD_RELOC_MIPS_GOT16 BFD_RELOC_MIPS_CALL16 BFD_RELOC_MIPS_GOT_HI16 BFD_RELOC_MIPS_GOT_LO16 BFD_RELOC_MIPS_CALL_HI16 BFD_RELOC_MIPS_CALL_LO16 BFD_RELOC_MIPS_SUB BFD_RELOC_MIPS_GOT_PAGE BFD_RELOC_MIPS_GOT_OFST BFD_RELOC_MIPS_GOT_DISP BFD_RELOC_MIPS_SHIFT5 BFD_RELOC_MIPS_SHIFT6 BFD_RELOC_MIPS_INSERT_A BFD_RELOC_MIPS_INSERT_B BFD_RELOC_MIPS_DELETE BFD_RELOC_MIPS_HIGHEST BFD_RELOC_MIPS_HIGHER BFD_RELOC_MIPS_SCN_DISP BFD_RELOC_MIPS_REL16 BFD_RELOC_MIPS_RELGOT BFD_RELOC_MIPS_JALR BFD_RELOC_MIPS_TLS_DTPMOD32 BFD_RELOC_MIPS_TLS_DTPREL32 BFD_RELOC_MIPS_TLS_DTPMOD64 BFD_RELOC_MIPS_TLS_DTPREL64 BFD_RELOC_MIPS_TLS_GD BFD_RELOC_MIPS_TLS_LDM BFD_RELOC_MIPS_TLS_GOTTPREL BFD_RELOC_MIPS_TLS_TPREL32 BFD_RELOC_MIPS_TLS_TPREL64 BFD_RELOC_MIPS_TLS_TPREL_HI16 BFD_RELOC_MIPS_TLS_TPREL_LO16 BFD_RELOC_MIPS_COPY BFD_RELOC_MIPS_JUMP_SLOT BFD_RELOC_MOXIE_10_PCREL BFD_RELOC_FRV_LABEL16 BFD_RELOC_FRV_LABEL24 BFD_RELOC_FRV_LO16 BFD_RELOC_FRV_HI16 BFD_RELOC_FRV_GPREL12 BFD_RELOC_FRV_GPRELU12 BFD_RELOC_FRV_GPREL32 BFD_RELOC_FRV_GPRELHI BFD_RELOC_FRV_GPRELLO BFD_RELOC_FRV_GOT12 BFD_RELOC_FRV_GOTHI BFD_RELOC_FRV_GOTLO BFD_RELOC_FRV_FUNCDESC BFD_RELOC_FRV_FUNCDESC_GOT12 BFD_RELOC_FRV_FUNCDESC_GOTHI BFD_RELOC_FRV_FUNCDESC_GOTLO BFD_RELOC_FRV_FUNCDESC_VALUE BFD_RELOC_FRV_GOTOFF12 BFD_RELOC_FRV_GOTOFFHI BFD_RELOC_FRV_GOTOFFLO BFD_RELOC_FRV_GETTLSOFF BFD_RELOC_FRV_TLSDESC_VALUE BFD_RELOC_FRV_GOTTLSDESC12 BFD_RELOC_FRV_GOTTLSDESCHI BFD_RELOC_FRV_GOTTLSDESCLO BFD_RELOC_FRV_TLSMOFF12 BFD_RELOC_FRV_TLSMOFFHI BFD_RELOC_FRV_TLSMOFFLO BFD_RELOC_FRV_GOTTLSOFF12 BFD_RELOC_FRV_GOTTLSOFFHI BFD_RELOC_FRV_GOTTLSOFFLO BFD_RELOC_FRV_TLSOFF BFD_RELOC_FRV_TLSDESC_RELAX BFD_RELOC_FRV_GETTLSOFF_RELAX BFD_RELOC_FRV_TLSOFF_RELAX BFD_RELOC_FRV_TLSMOFF BFD_RELOC_MN10300_GOTOFF24 BFD_RELOC_MN10300_GOT32 BFD_RELOC_MN10300_GOT24 BFD_RELOC_MN10300_GOT16 BFD_RELOC_MN10300_COPY BFD_RELOC_MN10300_GLOB_DAT BFD_RELOC_MN10300_JMP_SLOT BFD_RELOC_MN10300_RELATIVE BFD_RELOC_MN10300_SYM_DIFF BFD_RELOC_MN10300_ALIGN BFD_RELOC_386_GOT32 BFD_RELOC_386_PLT32 BFD_RELOC_386_COPY BFD_RELOC_386_GLOB_DAT BFD_RELOC_386_JUMP_SLOT BFD_RELOC_386_RELATIVE BFD_RELOC_386_GOTOFF BFD_RELOC_386_GOTPC BFD_RELOC_386_TLS_TPOFF BFD_RELOC_386_TLS_IE BFD_RELOC_386_TLS_GOTIE BFD_RELOC_386_TLS_LE BFD_RELOC_386_TLS_GD BFD_RELOC_386_TLS_LDM BFD_RELOC_386_TLS_LDO_32 BFD_RELOC_386_TLS_IE_32 BFD_RELOC_386_TLS_LE_32 BFD_RELOC_386_TLS_DTPMOD32 BFD_RELOC_386_TLS_DTPOFF32 BFD_RELOC_386_TLS_TPOFF32 BFD_RELOC_386_TLS_GOTDESC BFD_RELOC_386_TLS_DESC_CALL BFD_RELOC_386_TLS_DESC BFD_RELOC_386_IRELATIVE BFD_RELOC_X86_64_GOT32 BFD_RELOC_X86_64_PLT32 BFD_RELOC_X86_64_COPY BFD_RELOC_X86_64_GLOB_DAT BFD_RELOC_X86_64_JUMP_SLOT BFD_RELOC_X86_64_RELATIVE BFD_RELOC_X86_64_GOTPCREL BFD_RELOC_X86_64_32S BFD_RELOC_X86_64_DTPMOD64 BFD_RELOC_X86_64_DTPOFF64 BFD_RELOC_X86_64_TPOFF64 BFD_RELOC_X86_64_TLSGD BFD_RELOC_X86_64_TLSLD BFD_RELOC_X86_64_DTPOFF32 BFD_RELOC_X86_64_GOTTPOFF BFD_RELOC_X86_64_TPOFF32 BFD_RELOC_X86_64_GOTOFF64 BFD_RELOC_X86_64_GOTPC32 BFD_RELOC_X86_64_GOT64 BFD_RELOC_X86_64_GOTPCREL64 BFD_RELOC_X86_64_GOTPC64 BFD_RELOC_X86_64_GOTPLT64 BFD_RELOC_X86_64_PLTOFF64 BFD_RELOC_X86_64_TLSDESC_CALL BFD_RELOC_X86_64_TLSDESC BFD_RELOC_X86_64_IRELATIVE BFD_RELOC_NS32K_IMM_8 BFD_RELOC_NS32K_IMM_16 BFD_RELOC_NS32K_IMM_32 BFD_RELOC_NS32K_IMM_8_PCREL BFD_RELOC_NS32K_IMM_16_PCREL BFD_RELOC_NS32K_IMM_32_PCREL BFD_RELOC_NS32K_DISP_8 BFD_RELOC_NS32K_DISP_16 BFD_RELOC_NS32K_DISP_32 BFD_RELOC_NS32K_DISP_8_PCREL BFD_RELOC_NS32K_DISP_16_PCREL BFD_RELOC_NS32K_DISP_32_PCREL BFD_RELOC_PDP11_DISP_8_PCREL BFD_RELOC_PDP11_DISP_6_PCREL BFD_RELOC_PJ_CODE_HI16 BFD_RELOC_PJ_CODE_LO16 BFD_RELOC_PJ_CODE_DIR16 BFD_RELOC_PJ_CODE_DIR32 BFD_RELOC_PJ_CODE_REL16 BFD_RELOC_PJ_CODE_REL32 BFD_RELOC_PPC_B26 BFD_RELOC_PPC_BA26 BFD_RELOC_PPC_TOC16 BFD_RELOC_PPC_B16 BFD_RELOC_PPC_B16_BRTAKEN BFD_RELOC_PPC_B16_BRNTAKEN BFD_RELOC_PPC_BA16 BFD_RELOC_PPC_BA16_BRTAKEN BFD_RELOC_PPC_BA16_BRNTAKEN BFD_RELOC_PPC_COPY BFD_RELOC_PPC_GLOB_DAT BFD_RELOC_PPC_JMP_SLOT BFD_RELOC_PPC_RELATIVE BFD_RELOC_PPC_LOCAL24PC BFD_RELOC_PPC_EMB_NADDR32 BFD_RELOC_PPC_EMB_NADDR16 BFD_RELOC_PPC_EMB_NADDR16_LO BFD_RELOC_PPC_EMB_NADDR16_HI BFD_RELOC_PPC_EMB_NADDR16_HA BFD_RELOC_PPC_EMB_SDAI16 BFD_RELOC_PPC_EMB_SDA2I16 BFD_RELOC_PPC_EMB_SDA2REL BFD_RELOC_PPC_EMB_SDA21 BFD_RELOC_PPC_EMB_MRKREF BFD_RELOC_PPC_EMB_RELSEC16 BFD_RELOC_PPC_EMB_RELST_LO BFD_RELOC_PPC_EMB_RELST_HI BFD_RELOC_PPC_EMB_RELST_HA BFD_RELOC_PPC_EMB_BIT_FLD BFD_RELOC_PPC_EMB_RELSDA BFD_RELOC_PPC64_HIGHER BFD_RELOC_PPC64_HIGHER_S BFD_RELOC_PPC64_HIGHEST BFD_RELOC_PPC64_HIGHEST_S BFD_RELOC_PPC64_TOC16_LO BFD_RELOC_PPC64_TOC16_HI BFD_RELOC_PPC64_TOC16_HA BFD_RELOC_PPC64_TOC BFD_RELOC_PPC64_PLTGOT16 BFD_RELOC_PPC64_PLTGOT16_LO BFD_RELOC_PPC64_PLTGOT16_HI BFD_RELOC_PPC64_PLTGOT16_HA BFD_RELOC_PPC64_ADDR16_DS BFD_RELOC_PPC64_ADDR16_LO_DS BFD_RELOC_PPC64_GOT16_DS BFD_RELOC_PPC64_GOT16_LO_DS BFD_RELOC_PPC64_PLT16_LO_DS BFD_RELOC_PPC64_SECTOFF_DS BFD_RELOC_PPC64_SECTOFF_LO_DS BFD_RELOC_PPC64_TOC16_DS BFD_RELOC_PPC64_TOC16_LO_DS BFD_RELOC_PPC64_PLTGOT16_DS BFD_RELOC_PPC_TLS BFD_RELOC_PPC_TLSGD BFD_RELOC_PPC_TLSLD BFD_RELOC_PPC_DTPMOD BFD_RELOC_PPC_TPREL16 BFD_RELOC_PPC_TPREL16_LO BFD_RELOC_PPC_TPREL16_HI BFD_RELOC_PPC_TPREL16_HA BFD_RELOC_PPC_TPREL BFD_RELOC_PPC_DTPREL16 BFD_RELOC_PPC_DTPREL16_LO BFD_RELOC_PPC_DTPREL16_HI BFD_RELOC_PPC_DTPREL16_HA BFD_RELOC_PPC_DTPREL BFD_RELOC_PPC_GOT_TLSGD16 BFD_RELOC_PPC_GOT_TLSGD16_LO BFD_RELOC_PPC_GOT_TLSGD16_HI BFD_RELOC_PPC_GOT_TLSGD16_HA BFD_RELOC_PPC_GOT_TLSLD16 BFD_RELOC_PPC_GOT_TLSLD16_LO BFD_RELOC_PPC_GOT_TLSLD16_HI BFD_RELOC_PPC_GOT_TLSLD16_HA BFD_RELOC_PPC_GOT_TPREL16 BFD_RELOC_PPC_GOT_TPREL16_LO BFD_RELOC_PPC_GOT_TPREL16_HI BFD_RELOC_PPC_GOT_TPREL16_HA BFD_RELOC_PPC_GOT_DTPREL16 BFD_RELOC_PPC_GOT_DTPREL16_LO BFD_RELOC_PPC_GOT_DTPREL16_HI BFD_RELOC_PPC_GOT_DTPREL16_HA BFD_RELOC_PPC64_TPREL16_DS BFD_RELOC_PPC64_TPREL16_LO_DS BFD_RELOC_PPC64_DTPREL16_DS BFD_RELOC_I370_D12 BFD_RELOC_CTOR BFD_RELOC_ARM_PCREL_BRANCH BFD_RELOC_ARM_PCREL_BLX BFD_RELOC_THUMB_PCREL_BLX BFD_RELOC_ARM_PCREL_CALL BFD_RELOC_ARM_PCREL_JUMP BFD_RELOC_THUMB_PCREL_BRANCH7 BFD_RELOC_THUMB_PCREL_BRANCH9 BFD_RELOC_ARM_OFFSET_IMM BFD_RELOC_ARM_THUMB_OFFSET BFD_RELOC_ARM_TARGET1 BFD_RELOC_ARM_ROSEGREL32 BFD_RELOC_ARM_SBREL32 BFD_RELOC_ARM_TARGET2 BFD_RELOC_ARM_PREL31 BFD_RELOC_ARM_MOVW BFD_RELOC_ARM_MOVT BFD_RELOC_ARM_MOVW_PCREL BFD_RELOC_ARM_MOVT_PCREL BFD_RELOC_ARM_THUMB_MOVW BFD_RELOC_ARM_THUMB_MOVT BFD_RELOC_ARM_JUMP_SLOT BFD_RELOC_ARM_GLOB_DAT BFD_RELOC_ARM_GOT32 BFD_RELOC_ARM_PLT32 BFD_RELOC_ARM_RELATIVE BFD_RELOC_ARM_GOTOFF BFD_RELOC_ARM_GOTPC BFD_RELOC_ARM_GOT_PREL BFD_RELOC_ARM_TLS_GD32 BFD_RELOC_ARM_TLS_LDO32 BFD_RELOC_ARM_TLS_LDM32 BFD_RELOC_ARM_TLS_DTPOFF32 BFD_RELOC_ARM_TLS_DTPMOD32 BFD_RELOC_ARM_TLS_TPOFF32 BFD_RELOC_ARM_TLS_IE32 BFD_RELOC_ARM_TLS_LE32 BFD_RELOC_ARM_ALU_PC_G0_NC BFD_RELOC_ARM_ALU_PC_G0 BFD_RELOC_ARM_ALU_PC_G1_NC BFD_RELOC_ARM_ALU_PC_G1 BFD_RELOC_ARM_ALU_PC_G2 BFD_RELOC_ARM_LDR_PC_G0 BFD_RELOC_ARM_LDR_PC_G1 BFD_RELOC_ARM_LDR_PC_G2 BFD_RELOC_ARM_LDRS_PC_G0 BFD_RELOC_ARM_LDRS_PC_G1 BFD_RELOC_ARM_LDRS_PC_G2 BFD_RELOC_ARM_LDC_PC_G0 BFD_RELOC_ARM_LDC_PC_G1 BFD_RELOC_ARM_LDC_PC_G2 BFD_RELOC_ARM_ALU_SB_G0_NC BFD_RELOC_ARM_ALU_SB_G0 BFD_RELOC_ARM_ALU_SB_G1_NC BFD_RELOC_ARM_ALU_SB_G1 BFD_RELOC_ARM_ALU_SB_G2 BFD_RELOC_ARM_LDR_SB_G0 BFD_RELOC_ARM_LDR_SB_G1 BFD_RELOC_ARM_LDR_SB_G2 BFD_RELOC_ARM_LDRS_SB_G0 BFD_RELOC_ARM_LDRS_SB_G1 BFD_RELOC_ARM_LDRS_SB_G2 BFD_RELOC_ARM_LDC_SB_G0 BFD_RELOC_ARM_LDC_SB_G1 BFD_RELOC_ARM_LDC_SB_G2 BFD_RELOC_ARM_V4BX BFD_RELOC_ARM_IMMEDIATE BFD_RELOC_ARM_ADRL_IMMEDIATE BFD_RELOC_ARM_T32_IMMEDIATE BFD_RELOC_ARM_T32_ADD_IMM BFD_RELOC_ARM_T32_IMM12 BFD_RELOC_ARM_T32_ADD_PC12 BFD_RELOC_ARM_SHIFT_IMM BFD_RELOC_ARM_SMC BFD_RELOC_ARM_HVC BFD_RELOC_ARM_SWI BFD_RELOC_ARM_MULTI BFD_RELOC_ARM_CP_OFF_IMM BFD_RELOC_ARM_CP_OFF_IMM_S2 BFD_RELOC_ARM_T32_CP_OFF_IMM BFD_RELOC_ARM_ADR_IMM BFD_RELOC_ARM_LDR_IMM BFD_RELOC_ARM_LITERAL BFD_RELOC_ARM_IN_POOL BFD_RELOC_ARM_OFFSET_IMM8 BFD_RELOC_ARM_T32_OFFSET_U8 BFD_RELOC_ARM_T32_OFFSET_IMM BFD_RELOC_ARM_HWLITERAL BFD_RELOC_ARM_THUMB_ADD BFD_RELOC_ARM_THUMB_IMM BFD_RELOC_ARM_THUMB_SHIFT BFD_RELOC_SH_PCDISP8BY2 BFD_RELOC_SH_PCDISP12BY2 BFD_RELOC_SH_IMM3 BFD_RELOC_SH_IMM3U BFD_RELOC_SH_DISP12 BFD_RELOC_SH_DISP12BY2 BFD_RELOC_SH_DISP12BY4 BFD_RELOC_SH_DISP12BY8 BFD_RELOC_SH_DISP20 BFD_RELOC_SH_DISP20BY8 BFD_RELOC_SH_IMM4 BFD_RELOC_SH_IMM4BY2 BFD_RELOC_SH_IMM4BY4 BFD_RELOC_SH_IMM8 BFD_RELOC_SH_IMM8BY2 BFD_RELOC_SH_IMM8BY4 BFD_RELOC_SH_PCRELIMM8BY2 BFD_RELOC_SH_PCRELIMM8BY4 BFD_RELOC_SH_SWITCH16 BFD_RELOC_SH_SWITCH32 BFD_RELOC_SH_USES BFD_RELOC_SH_COUNT BFD_RELOC_SH_ALIGN BFD_RELOC_SH_CODE BFD_RELOC_SH_DATA BFD_RELOC_SH_LABEL BFD_RELOC_SH_LOOP_START BFD_RELOC_SH_LOOP_END BFD_RELOC_SH_COPY BFD_RELOC_SH_GLOB_DAT BFD_RELOC_SH_JMP_SLOT BFD_RELOC_SH_RELATIVE BFD_RELOC_SH_GOTPC BFD_RELOC_SH_GOT_LOW16 BFD_RELOC_SH_GOT_MEDLOW16 BFD_RELOC_SH_GOT_MEDHI16 BFD_RELOC_SH_GOT_HI16 BFD_RELOC_SH_GOTPLT_LOW16 BFD_RELOC_SH_GOTPLT_MEDLOW16 BFD_RELOC_SH_GOTPLT_MEDHI16 BFD_RELOC_SH_GOTPLT_HI16 BFD_RELOC_SH_PLT_LOW16 BFD_RELOC_SH_PLT_MEDLOW16 BFD_RELOC_SH_PLT_MEDHI16 BFD_RELOC_SH_PLT_HI16 BFD_RELOC_SH_GOTOFF_LOW16 BFD_RELOC_SH_GOTOFF_MEDLOW16 BFD_RELOC_SH_GOTOFF_MEDHI16 BFD_RELOC_SH_GOTOFF_HI16 BFD_RELOC_SH_GOTPC_LOW16 BFD_RELOC_SH_GOTPC_MEDLOW16 BFD_RELOC_SH_GOTPC_MEDHI16 BFD_RELOC_SH_GOTPC_HI16 BFD_RELOC_SH_COPY64 BFD_RELOC_SH_GLOB_DAT64 BFD_RELOC_SH_JMP_SLOT64 BFD_RELOC_SH_RELATIVE64 BFD_RELOC_SH_GOT10BY4 BFD_RELOC_SH_GOT10BY8 BFD_RELOC_SH_GOTPLT10BY4 BFD_RELOC_SH_GOTPLT10BY8 BFD_RELOC_SH_GOTPLT32 BFD_RELOC_SH_SHMEDIA_CODE BFD_RELOC_SH_IMMU5 BFD_RELOC_SH_IMMS6 BFD_RELOC_SH_IMMS6BY32 BFD_RELOC_SH_IMMU6 BFD_RELOC_SH_IMMS10 BFD_RELOC_SH_IMMS10BY2 BFD_RELOC_SH_IMMS10BY4 BFD_RELOC_SH_IMMS10BY8 BFD_RELOC_SH_IMMS16 BFD_RELOC_SH_IMMU16 BFD_RELOC_SH_IMM_LOW16 BFD_RELOC_SH_IMM_LOW16_PCREL BFD_RELOC_SH_IMM_MEDLOW16 BFD_RELOC_SH_IMM_MEDHI16 BFD_RELOC_SH_IMM_HI16 BFD_RELOC_SH_IMM_HI16_PCREL BFD_RELOC_SH_PT_16 BFD_RELOC_SH_TLS_GD_32 BFD_RELOC_SH_TLS_LD_32 BFD_RELOC_SH_TLS_LDO_32 BFD_RELOC_SH_TLS_IE_32 BFD_RELOC_SH_TLS_LE_32 BFD_RELOC_SH_TLS_DTPMOD32 BFD_RELOC_SH_TLS_DTPOFF32 BFD_RELOC_SH_TLS_TPOFF32 BFD_RELOC_SH_GOT20 BFD_RELOC_SH_GOTOFF20 BFD_RELOC_SH_GOTFUNCDESC BFD_RELOC_SH_GOTFUNCDESC20 BFD_RELOC_SH_GOTOFFFUNCDESC BFD_RELOC_SH_GOTOFFFUNCDESC20 BFD_RELOC_SH_FUNCDESC BFD_RELOC_ARC_B22_PCREL BFD_RELOC_ARC_B26 BFD_RELOC_BFIN_16_IMM BFD_RELOC_BFIN_16_HIGH BFD_RELOC_BFIN_4_PCREL BFD_RELOC_BFIN_5_PCREL BFD_RELOC_BFIN_16_LOW BFD_RELOC_BFIN_10_PCREL BFD_RELOC_BFIN_11_PCREL BFD_RELOC_BFIN_12_PCREL_JUMP BFD_RELOC_BFIN_GOT17M4 BFD_RELOC_BFIN_GOTHI BFD_RELOC_BFIN_GOTLO BFD_RELOC_BFIN_FUNCDESC BFD_RELOC_BFIN_FUNCDESC_GOTHI BFD_RELOC_BFIN_FUNCDESC_GOTLO BFD_RELOC_BFIN_FUNCDESC_VALUE BFD_RELOC_BFIN_GOTOFF17M4 BFD_RELOC_BFIN_GOTOFFHI BFD_RELOC_BFIN_GOTOFFLO BFD_RELOC_BFIN_GOT BFD_RELOC_BFIN_PLTPC BFD_ARELOC_BFIN_PUSH BFD_ARELOC_BFIN_CONST BFD_ARELOC_BFIN_ADD BFD_ARELOC_BFIN_SUB BFD_ARELOC_BFIN_MULT BFD_ARELOC_BFIN_DIV BFD_ARELOC_BFIN_MOD BFD_ARELOC_BFIN_LSHIFT BFD_ARELOC_BFIN_RSHIFT BFD_ARELOC_BFIN_AND BFD_ARELOC_BFIN_OR BFD_ARELOC_BFIN_XOR BFD_ARELOC_BFIN_LAND BFD_ARELOC_BFIN_LOR BFD_ARELOC_BFIN_LEN BFD_ARELOC_BFIN_NEG BFD_ARELOC_BFIN_COMP BFD_ARELOC_BFIN_PAGE BFD_ARELOC_BFIN_HWPAGE BFD_ARELOC_BFIN_ADDR BFD_RELOC_D10V_10_PCREL_R BFD_RELOC_D10V_10_PCREL_L BFD_RELOC_D10V_18 BFD_RELOC_D10V_18_PCREL BFD_RELOC_D30V_6 BFD_RELOC_D30V_9_PCREL BFD_RELOC_D30V_9_PCREL_R BFD_RELOC_D30V_15 BFD_RELOC_D30V_15_PCREL BFD_RELOC_D30V_15_PCREL_R BFD_RELOC_D30V_21 BFD_RELOC_D30V_21_PCREL BFD_RELOC_D30V_21_PCREL_R BFD_RELOC_D30V_32 BFD_RELOC_D30V_32_PCREL BFD_RELOC_DLX_HI16_S BFD_RELOC_DLX_LO16 BFD_RELOC_DLX_JMP26 BFD_RELOC_M32C_HI8 BFD_RELOC_M32C_RL_JUMP BFD_RELOC_M32C_RL_1ADDR BFD_RELOC_M32C_RL_2ADDR BFD_RELOC_M32R_24 BFD_RELOC_M32R_10_PCREL BFD_RELOC_M32R_18_PCREL BFD_RELOC_M32R_26_PCREL BFD_RELOC_M32R_HI16_ULO BFD_RELOC_M32R_HI16_SLO BFD_RELOC_M32R_LO16 BFD_RELOC_M32R_SDA16 BFD_RELOC_M32R_GOT24 BFD_RELOC_M32R_26_PLTREL BFD_RELOC_M32R_COPY BFD_RELOC_M32R_GLOB_DAT BFD_RELOC_M32R_JMP_SLOT BFD_RELOC_M32R_RELATIVE BFD_RELOC_M32R_GOTOFF BFD_RELOC_M32R_GOTOFF_HI_ULO BFD_RELOC_M32R_GOTOFF_HI_SLO BFD_RELOC_M32R_GOTOFF_LO BFD_RELOC_M32R_GOTPC24 BFD_RELOC_M32R_GOT16_HI_ULO BFD_RELOC_M32R_GOT16_HI_SLO BFD_RELOC_M32R_GOT16_LO BFD_RELOC_M32R_GOTPC_HI_ULO BFD_RELOC_M32R_GOTPC_HI_SLO BFD_RELOC_M32R_GOTPC_LO BFD_RELOC_V850_9_PCREL BFD_RELOC_V850_22_PCREL BFD_RELOC_V850_TDA_6_8_OFFSET BFD_RELOC_V850_TDA_7_8_OFFSET BFD_RELOC_V850_TDA_7_7_OFFSET BFD_RELOC_V850_TDA_4_5_OFFSET BFD_RELOC_V850_TDA_4_4_OFFSET BFD_RELOC_V850_LONGCALL BFD_RELOC_V850_LONGJUMP BFD_RELOC_V850_ALIGN BFD_RELOC_V850_16_PCREL BFD_RELOC_V850_17_PCREL BFD_RELOC_V850_23 BFD_RELOC_V850_32_PCREL BFD_RELOC_V850_32_ABS BFD_RELOC_V850_16_S1 BFD_RELOC_V850_LO16_S1 BFD_RELOC_V850_32_GOTPCREL BFD_RELOC_V850_16_GOT BFD_RELOC_V850_32_GOT BFD_RELOC_V850_22_PLT_PCREL BFD_RELOC_V850_32_PLT_PCREL BFD_RELOC_V850_COPY BFD_RELOC_V850_GLOB_DAT BFD_RELOC_V850_JMP_SLOT BFD_RELOC_V850_RELATIVE BFD_RELOC_V850_16_GOTOFF BFD_RELOC_V850_32_GOTOFF BFD_RELOC_V850_CODE BFD_RELOC_V850_DATA BFD_RELOC_MN10300_32_PCREL BFD_RELOC_MN10300_16_PCREL BFD_RELOC_TIC30_LDP BFD_RELOC_TIC54X_PARTLS7 BFD_RELOC_TIC54X_PARTMS9 BFD_RELOC_TIC54X_23 BFD_RELOC_TIC54X_16_OF_23 BFD_RELOC_TIC54X_MS7_OF_23 BFD_RELOC_C6000_PCR_S21 BFD_RELOC_C6000_PCR_S12 BFD_RELOC_C6000_PCR_S10 BFD_RELOC_C6000_PCR_S7 BFD_RELOC_C6000_ABS_S16 BFD_RELOC_C6000_ABS_L16 BFD_RELOC_C6000_ABS_H16 BFD_RELOC_C6000_SBR_U15_B BFD_RELOC_C6000_SBR_U15_H BFD_RELOC_C6000_SBR_U15_W BFD_RELOC_C6000_SBR_S16 BFD_RELOC_C6000_SBR_L16_B BFD_RELOC_C6000_SBR_L16_H BFD_RELOC_C6000_SBR_L16_W BFD_RELOC_C6000_SBR_H16_B BFD_RELOC_C6000_SBR_H16_H BFD_RELOC_C6000_SBR_H16_W BFD_RELOC_C6000_SBR_GOT_U15_W BFD_RELOC_C6000_SBR_GOT_L16_W BFD_RELOC_C6000_SBR_GOT_H16_W BFD_RELOC_C6000_DSBT_INDEX BFD_RELOC_C6000_PREL31 BFD_RELOC_C6000_COPY BFD_RELOC_C6000_ALIGN BFD_RELOC_C6000_FPHEAD BFD_RELOC_C6000_NOCMP BFD_RELOC_FR30_48 BFD_RELOC_FR30_20 BFD_RELOC_FR30_6_IN_4 BFD_RELOC_FR30_8_IN_8 BFD_RELOC_FR30_9_IN_8 BFD_RELOC_FR30_10_IN_8 BFD_RELOC_FR30_9_PCREL BFD_RELOC_FR30_12_PCREL BFD_RELOC_MCORE_PCREL_IMM8BY4 BFD_RELOC_MCORE_PCREL_IMM4BY2 BFD_RELOC_MCORE_PCREL_32 BFD_RELOC_MCORE_RVA BFD_RELOC_MEP_8 BFD_RELOC_MEP_16 BFD_RELOC_MEP_32 BFD_RELOC_MEP_PCREL8A2 BFD_RELOC_MEP_PCREL12A2 BFD_RELOC_MEP_PCREL17A2 BFD_RELOC_MEP_PCREL24A2 BFD_RELOC_MEP_PCABS24A2 BFD_RELOC_MEP_LOW16 BFD_RELOC_MEP_HI16U BFD_RELOC_MEP_HI16S BFD_RELOC_MEP_GPREL BFD_RELOC_MEP_TPREL BFD_RELOC_MEP_TPREL7 BFD_RELOC_MEP_TPREL7A2 BFD_RELOC_MEP_TPREL7A4 BFD_RELOC_MEP_UIMM24 BFD_RELOC_MEP_ADDR24A4 BFD_RELOC_MEP_GNU_VTINHERIT BFD_RELOC_MEP_GNU_VTENTRY BFD_RELOC_MMIX_GETA BFD_RELOC_MMIX_GETA_1 BFD_RELOC_MMIX_GETA_2 BFD_RELOC_MMIX_GETA_3 BFD_RELOC_MMIX_CBRANCH BFD_RELOC_MMIX_CBRANCH_J BFD_RELOC_MMIX_CBRANCH_1 BFD_RELOC_MMIX_CBRANCH_2 BFD_RELOC_MMIX_CBRANCH_3 BFD_RELOC_MMIX_PUSHJ BFD_RELOC_MMIX_PUSHJ_1 BFD_RELOC_MMIX_PUSHJ_2 BFD_RELOC_MMIX_PUSHJ_3 BFD_RELOC_MMIX_JMP BFD_RELOC_MMIX_JMP_1 BFD_RELOC_MMIX_JMP_2 BFD_RELOC_MMIX_JMP_3 BFD_RELOC_MMIX_ADDR19 BFD_RELOC_MMIX_ADDR27 BFD_RELOC_MMIX_REG_OR_BYTE BFD_RELOC_MMIX_REG BFD_RELOC_MMIX_LOCAL BFD_RELOC_AVR_7_PCREL BFD_RELOC_AVR_13_PCREL BFD_RELOC_AVR_16_PM BFD_RELOC_AVR_LO8_LDI BFD_RELOC_AVR_HI8_LDI BFD_RELOC_AVR_HH8_LDI BFD_RELOC_AVR_MS8_LDI BFD_RELOC_AVR_LO8_LDI_NEG BFD_RELOC_AVR_HI8_LDI_NEG BFD_RELOC_AVR_HH8_LDI_NEG BFD_RELOC_AVR_MS8_LDI_NEG BFD_RELOC_AVR_LO8_LDI_PM BFD_RELOC_AVR_LO8_LDI_GS BFD_RELOC_AVR_HI8_LDI_PM BFD_RELOC_AVR_HI8_LDI_GS BFD_RELOC_AVR_HH8_LDI_PM BFD_RELOC_AVR_LO8_LDI_PM_NEG BFD_RELOC_AVR_HI8_LDI_PM_NEG BFD_RELOC_AVR_HH8_LDI_PM_NEG BFD_RELOC_AVR_CALL BFD_RELOC_AVR_LDI BFD_RELOC_AVR_6 BFD_RELOC_AVR_6_ADIW BFD_RELOC_RX_NEG8 BFD_RELOC_RX_NEG16 BFD_RELOC_RX_NEG24 BFD_RELOC_RX_NEG32 BFD_RELOC_RX_16_OP BFD_RELOC_RX_24_OP BFD_RELOC_RX_32_OP BFD_RELOC_RX_8U BFD_RELOC_RX_16U BFD_RELOC_RX_24U BFD_RELOC_RX_DIR3U_PCREL BFD_RELOC_RX_DIFF BFD_RELOC_RX_GPRELB BFD_RELOC_RX_GPRELW BFD_RELOC_RX_GPRELL BFD_RELOC_RX_SYM BFD_RELOC_RX_OP_SUBTRACT BFD_RELOC_RX_ABS8 BFD_RELOC_RX_ABS16 BFD_RELOC_RX_ABS32 BFD_RELOC_RX_ABS16U BFD_RELOC_RX_ABS16UW BFD_RELOC_RX_ABS16UL BFD_RELOC_RX_RELAX BFD_RELOC_390_12 BFD_RELOC_390_GOT12 BFD_RELOC_390_PLT32 BFD_RELOC_390_COPY BFD_RELOC_390_GLOB_DAT BFD_RELOC_390_JMP_SLOT BFD_RELOC_390_RELATIVE BFD_RELOC_390_GOTPC BFD_RELOC_390_GOT16 BFD_RELOC_390_PC16DBL BFD_RELOC_390_PLT16DBL BFD_RELOC_390_PC32DBL BFD_RELOC_390_PLT32DBL BFD_RELOC_390_GOTPCDBL BFD_RELOC_390_GOT64 BFD_RELOC_390_PLT64 BFD_RELOC_390_GOTENT BFD_RELOC_390_GOTOFF64 BFD_RELOC_390_GOTPLT12 BFD_RELOC_390_GOTPLT16 BFD_RELOC_390_GOTPLT32 BFD_RELOC_390_GOTPLT64 BFD_RELOC_390_GOTPLTENT BFD_RELOC_390_PLTOFF16 BFD_RELOC_390_PLTOFF32 BFD_RELOC_390_PLTOFF64 BFD_RELOC_390_TLS_LOAD BFD_RELOC_390_TLS_GDCALL BFD_RELOC_390_TLS_LDCALL BFD_RELOC_390_TLS_GD32 BFD_RELOC_390_TLS_GD64 BFD_RELOC_390_TLS_GOTIE12 BFD_RELOC_390_TLS_GOTIE32 BFD_RELOC_390_TLS_GOTIE64 BFD_RELOC_390_TLS_LDM32 BFD_RELOC_390_TLS_LDM64 BFD_RELOC_390_TLS_IE32 BFD_RELOC_390_TLS_IE64 BFD_RELOC_390_TLS_IEENT BFD_RELOC_390_TLS_LE32 BFD_RELOC_390_TLS_LE64 BFD_RELOC_390_TLS_LDO32 BFD_RELOC_390_TLS_LDO64 BFD_RELOC_390_TLS_DTPMOD BFD_RELOC_390_TLS_DTPOFF BFD_RELOC_390_TLS_TPOFF BFD_RELOC_390_20 BFD_RELOC_390_GOT20 BFD_RELOC_390_GOTPLT20 BFD_RELOC_390_TLS_GOTIE20 BFD_RELOC_SCORE_GPREL15 BFD_RELOC_SCORE_DUMMY2 BFD_RELOC_SCORE_JMP BFD_RELOC_SCORE_BRANCH BFD_RELOC_SCORE_IMM30 BFD_RELOC_SCORE_IMM32 BFD_RELOC_SCORE16_JMP BFD_RELOC_SCORE16_BRANCH BFD_RELOC_SCORE_BCMP BFD_RELOC_SCORE_GOT15 BFD_RELOC_SCORE_GOT_LO16 BFD_RELOC_SCORE_CALL15 BFD_RELOC_SCORE_DUMMY_HI16 BFD_RELOC_IP2K_FR9 BFD_RELOC_IP2K_BANK BFD_RELOC_IP2K_ADDR16CJP BFD_RELOC_IP2K_PAGE3 BFD_RELOC_IP2K_LO8DATA BFD_RELOC_IP2K_HI8DATA BFD_RELOC_IP2K_EX8DATA BFD_RELOC_IP2K_LO8INSN BFD_RELOC_IP2K_HI8INSN BFD_RELOC_IP2K_PC_SKIP BFD_RELOC_IP2K_TEXT BFD_RELOC_IP2K_FR_OFFSET BFD_RELOC_VPE4KMATH_DATA BFD_RELOC_VPE4KMATH_INSN BFD_RELOC_VTABLE_INHERIT BFD_RELOC_VTABLE_ENTRY BFD_RELOC_IA64_IMM14 BFD_RELOC_IA64_IMM22 BFD_RELOC_IA64_IMM64 BFD_RELOC_IA64_DIR32MSB BFD_RELOC_IA64_DIR32LSB BFD_RELOC_IA64_DIR64MSB BFD_RELOC_IA64_DIR64LSB BFD_RELOC_IA64_GPREL22 BFD_RELOC_IA64_GPREL64I BFD_RELOC_IA64_GPREL32MSB BFD_RELOC_IA64_GPREL32LSB BFD_RELOC_IA64_GPREL64MSB BFD_RELOC_IA64_GPREL64LSB BFD_RELOC_IA64_LTOFF22 BFD_RELOC_IA64_LTOFF64I BFD_RELOC_IA64_PLTOFF22 BFD_RELOC_IA64_PLTOFF64I BFD_RELOC_IA64_PLTOFF64MSB BFD_RELOC_IA64_PLTOFF64LSB BFD_RELOC_IA64_FPTR64I BFD_RELOC_IA64_FPTR32MSB BFD_RELOC_IA64_FPTR32LSB BFD_RELOC_IA64_FPTR64MSB BFD_RELOC_IA64_FPTR64LSB BFD_RELOC_IA64_PCREL21B BFD_RELOC_IA64_PCREL21BI BFD_RELOC_IA64_PCREL21M BFD_RELOC_IA64_PCREL21F BFD_RELOC_IA64_PCREL22 BFD_RELOC_IA64_PCREL60B BFD_RELOC_IA64_PCREL64I BFD_RELOC_IA64_PCREL32MSB BFD_RELOC_IA64_PCREL32LSB BFD_RELOC_IA64_PCREL64MSB BFD_RELOC_IA64_PCREL64LSB BFD_RELOC_IA64_LTOFF_FPTR22 BFD_RELOC_IA64_LTOFF_FPTR64I BFD_RELOC_IA64_SEGREL32MSB BFD_RELOC_IA64_SEGREL32LSB BFD_RELOC_IA64_SEGREL64MSB BFD_RELOC_IA64_SEGREL64LSB BFD_RELOC_IA64_SECREL32MSB BFD_RELOC_IA64_SECREL32LSB BFD_RELOC_IA64_SECREL64MSB BFD_RELOC_IA64_SECREL64LSB BFD_RELOC_IA64_REL32MSB BFD_RELOC_IA64_REL32LSB BFD_RELOC_IA64_REL64MSB BFD_RELOC_IA64_REL64LSB BFD_RELOC_IA64_LTV32MSB BFD_RELOC_IA64_LTV32LSB BFD_RELOC_IA64_LTV64MSB BFD_RELOC_IA64_LTV64LSB BFD_RELOC_IA64_IPLTMSB BFD_RELOC_IA64_IPLTLSB BFD_RELOC_IA64_COPY BFD_RELOC_IA64_LTOFF22X BFD_RELOC_IA64_LDXMOV BFD_RELOC_IA64_TPREL14 BFD_RELOC_IA64_TPREL22 BFD_RELOC_IA64_TPREL64I BFD_RELOC_IA64_TPREL64MSB BFD_RELOC_IA64_TPREL64LSB BFD_RELOC_IA64_LTOFF_TPREL22 BFD_RELOC_IA64_DTPMOD64MSB BFD_RELOC_IA64_DTPMOD64LSB BFD_RELOC_IA64_LTOFF_DTPMOD22 BFD_RELOC_IA64_DTPREL14 BFD_RELOC_IA64_DTPREL22 BFD_RELOC_IA64_DTPREL64I BFD_RELOC_IA64_DTPREL32MSB BFD_RELOC_IA64_DTPREL32LSB BFD_RELOC_IA64_DTPREL64MSB BFD_RELOC_IA64_DTPREL64LSB BFD_RELOC_IA64_LTOFF_DTPREL22 BFD_RELOC_M68HC11_HI8 BFD_RELOC_M68HC11_LO8 BFD_RELOC_M68HC11_3B BFD_RELOC_M68HC11_RL_JUMP BFD_RELOC_M68HC11_RL_GROUP BFD_RELOC_M68HC11_LO16 BFD_RELOC_M68HC11_PAGE BFD_RELOC_M68HC11_24 BFD_RELOC_M68HC12_5B BFD_RELOC_16C_NUM08 BFD_RELOC_16C_NUM08_C BFD_RELOC_16C_NUM16 BFD_RELOC_16C_NUM16_C BFD_RELOC_16C_NUM32 BFD_RELOC_16C_NUM32_C BFD_RELOC_16C_DISP04 BFD_RELOC_16C_DISP04_C BFD_RELOC_16C_DISP08 BFD_RELOC_16C_DISP08_C BFD_RELOC_16C_DISP16 BFD_RELOC_16C_DISP16_C BFD_RELOC_16C_DISP24 BFD_RELOC_16C_DISP24_C BFD_RELOC_16C_DISP24a BFD_RELOC_16C_DISP24a_C BFD_RELOC_16C_REG04 BFD_RELOC_16C_REG04_C BFD_RELOC_16C_REG04a BFD_RELOC_16C_REG04a_C BFD_RELOC_16C_REG14 BFD_RELOC_16C_REG14_C BFD_RELOC_16C_REG16 BFD_RELOC_16C_REG16_C BFD_RELOC_16C_REG20 BFD_RELOC_16C_REG20_C BFD_RELOC_16C_ABS20 BFD_RELOC_16C_ABS20_C BFD_RELOC_16C_ABS24 BFD_RELOC_16C_ABS24_C BFD_RELOC_16C_IMM04 BFD_RELOC_16C_IMM04_C BFD_RELOC_16C_IMM16 BFD_RELOC_16C_IMM16_C BFD_RELOC_16C_IMM20 BFD_RELOC_16C_IMM20_C BFD_RELOC_16C_IMM24 BFD_RELOC_16C_IMM24_C BFD_RELOC_16C_IMM32 BFD_RELOC_16C_IMM32_C BFD_RELOC_CR16_NUM8 BFD_RELOC_CR16_NUM16 BFD_RELOC_CR16_NUM32 BFD_RELOC_CR16_NUM32a BFD_RELOC_CR16_REGREL0 BFD_RELOC_CR16_REGREL4 BFD_RELOC_CR16_REGREL4a BFD_RELOC_CR16_REGREL14 BFD_RELOC_CR16_REGREL14a BFD_RELOC_CR16_REGREL16 BFD_RELOC_CR16_REGREL20 BFD_RELOC_CR16_REGREL20a BFD_RELOC_CR16_ABS20 BFD_RELOC_CR16_ABS24 BFD_RELOC_CR16_IMM4 BFD_RELOC_CR16_IMM8 BFD_RELOC_CR16_IMM16 BFD_RELOC_CR16_IMM20 BFD_RELOC_CR16_IMM24 BFD_RELOC_CR16_IMM32 BFD_RELOC_CR16_IMM32a BFD_RELOC_CR16_DISP4 BFD_RELOC_CR16_DISP8 BFD_RELOC_CR16_DISP16 BFD_RELOC_CR16_DISP20 BFD_RELOC_CR16_DISP24 BFD_RELOC_CR16_DISP24a BFD_RELOC_CR16_SWITCH8 BFD_RELOC_CR16_SWITCH16 BFD_RELOC_CR16_SWITCH32 BFD_RELOC_CR16_GOT_REGREL20 BFD_RELOC_CR16_GOTC_REGREL20 BFD_RELOC_CR16_GLOB_DAT BFD_RELOC_CRX_REL4 BFD_RELOC_CRX_REL8 BFD_RELOC_CRX_REL8_CMP BFD_RELOC_CRX_REL16 BFD_RELOC_CRX_REL24 BFD_RELOC_CRX_REL32 BFD_RELOC_CRX_REGREL12 BFD_RELOC_CRX_REGREL22 BFD_RELOC_CRX_REGREL28 BFD_RELOC_CRX_REGREL32 BFD_RELOC_CRX_ABS16 BFD_RELOC_CRX_ABS32 BFD_RELOC_CRX_NUM8 BFD_RELOC_CRX_NUM16 BFD_RELOC_CRX_NUM32 BFD_RELOC_CRX_IMM16 BFD_RELOC_CRX_IMM32 BFD_RELOC_CRX_SWITCH8 BFD_RELOC_CRX_SWITCH16 BFD_RELOC_CRX_SWITCH32 BFD_RELOC_CRIS_BDISP8 BFD_RELOC_CRIS_UNSIGNED_5 BFD_RELOC_CRIS_SIGNED_6 BFD_RELOC_CRIS_UNSIGNED_6 BFD_RELOC_CRIS_SIGNED_8 BFD_RELOC_CRIS_UNSIGNED_8 BFD_RELOC_CRIS_SIGNED_16 BFD_RELOC_CRIS_UNSIGNED_16 BFD_RELOC_CRIS_LAPCQ_OFFSET BFD_RELOC_CRIS_UNSIGNED_4 BFD_RELOC_CRIS_COPY BFD_RELOC_CRIS_GLOB_DAT BFD_RELOC_CRIS_JUMP_SLOT BFD_RELOC_CRIS_RELATIVE BFD_RELOC_CRIS_32_GOT BFD_RELOC_CRIS_16_GOT BFD_RELOC_CRIS_32_GOTPLT BFD_RELOC_CRIS_16_GOTPLT BFD_RELOC_CRIS_32_GOTREL BFD_RELOC_CRIS_32_PLT_GOTREL BFD_RELOC_CRIS_32_PLT_PCREL BFD_RELOC_CRIS_32_GOT_GD BFD_RELOC_CRIS_16_GOT_GD BFD_RELOC_CRIS_32_GD BFD_RELOC_CRIS_DTP BFD_RELOC_CRIS_32_DTPREL BFD_RELOC_CRIS_16_DTPREL BFD_RELOC_CRIS_32_GOT_TPREL BFD_RELOC_CRIS_16_GOT_TPREL BFD_RELOC_CRIS_32_TPREL BFD_RELOC_CRIS_16_TPREL BFD_RELOC_CRIS_DTPMOD BFD_RELOC_CRIS_32_IE BFD_RELOC_860_COPY BFD_RELOC_860_GLOB_DAT BFD_RELOC_860_JUMP_SLOT BFD_RELOC_860_RELATIVE BFD_RELOC_860_PC26 BFD_RELOC_860_PLT26 BFD_RELOC_860_PC16 BFD_RELOC_860_LOW0 BFD_RELOC_860_SPLIT0 BFD_RELOC_860_LOW1 BFD_RELOC_860_SPLIT1 BFD_RELOC_860_LOW2 BFD_RELOC_860_SPLIT2 BFD_RELOC_860_LOW3 BFD_RELOC_860_LOGOT0 BFD_RELOC_860_SPGOT0 BFD_RELOC_860_LOGOT1 BFD_RELOC_860_SPGOT1 BFD_RELOC_860_LOGOTOFF0 BFD_RELOC_860_SPGOTOFF0 BFD_RELOC_860_LOGOTOFF1 BFD_RELOC_860_SPGOTOFF1 BFD_RELOC_860_LOGOTOFF2 BFD_RELOC_860_LOGOTOFF3 BFD_RELOC_860_LOPC BFD_RELOC_860_HIGHADJ BFD_RELOC_860_HAGOT BFD_RELOC_860_HAGOTOFF BFD_RELOC_860_HAPC BFD_RELOC_860_HIGH BFD_RELOC_860_HIGOT BFD_RELOC_860_HIGOTOFF BFD_RELOC_OPENRISC_ABS_26 BFD_RELOC_OPENRISC_REL_26 BFD_RELOC_H8_DIR16A8 BFD_RELOC_H8_DIR16R8 BFD_RELOC_H8_DIR24A8 BFD_RELOC_H8_DIR24R8 BFD_RELOC_H8_DIR32A16 BFD_RELOC_XSTORMY16_REL_12 BFD_RELOC_XSTORMY16_12 BFD_RELOC_XSTORMY16_24 BFD_RELOC_XSTORMY16_FPTR16 BFD_RELOC_RELC BFD_RELOC_XC16X_PAG BFD_RELOC_XC16X_POF BFD_RELOC_XC16X_SEG BFD_RELOC_XC16X_SOF BFD_RELOC_VAX_GLOB_DAT BFD_RELOC_VAX_JMP_SLOT BFD_RELOC_VAX_RELATIVE BFD_RELOC_MT_PC16 BFD_RELOC_MT_HI16 BFD_RELOC_MT_LO16 BFD_RELOC_MT_GNU_VTINHERIT BFD_RELOC_MT_GNU_VTENTRY BFD_RELOC_MT_PCINSN8 BFD_RELOC_MSP430_10_PCREL BFD_RELOC_MSP430_16_PCREL BFD_RELOC_MSP430_16 BFD_RELOC_MSP430_16_BYTE BFD_RELOC_MSP430_2X_PCREL BFD_RELOC_MSP430_RL_PCREL BFD_RELOC_IQ2000_OFFSET_16 BFD_RELOC_IQ2000_OFFSET_21 BFD_RELOC_IQ2000_UHI16 BFD_RELOC_XTENSA_RTLD BFD_RELOC_XTENSA_GLOB_DAT BFD_RELOC_XTENSA_JMP_SLOT BFD_RELOC_XTENSA_RELATIVE BFD_RELOC_XTENSA_PLT BFD_RELOC_XTENSA_DIFF8 BFD_RELOC_XTENSA_DIFF16 BFD_RELOC_XTENSA_DIFF32 BFD_RELOC_XTENSA_SLOT0_OP BFD_RELOC_XTENSA_SLOT1_OP BFD_RELOC_XTENSA_SLOT2_OP BFD_RELOC_XTENSA_SLOT3_OP BFD_RELOC_XTENSA_SLOT4_OP BFD_RELOC_XTENSA_SLOT5_OP BFD_RELOC_XTENSA_SLOT6_OP BFD_RELOC_XTENSA_SLOT7_OP BFD_RELOC_XTENSA_SLOT8_OP BFD_RELOC_XTENSA_SLOT9_OP BFD_RELOC_XTENSA_SLOT10_OP BFD_RELOC_XTENSA_SLOT11_OP BFD_RELOC_XTENSA_SLOT12_OP BFD_RELOC_XTENSA_SLOT13_OP BFD_RELOC_XTENSA_SLOT14_OP BFD_RELOC_XTENSA_SLOT0_ALT BFD_RELOC_XTENSA_SLOT1_ALT BFD_RELOC_XTENSA_SLOT2_ALT BFD_RELOC_XTENSA_SLOT3_ALT BFD_RELOC_XTENSA_SLOT4_ALT BFD_RELOC_XTENSA_SLOT5_ALT BFD_RELOC_XTENSA_SLOT6_ALT BFD_RELOC_XTENSA_SLOT7_ALT BFD_RELOC_XTENSA_SLOT8_ALT BFD_RELOC_XTENSA_SLOT9_ALT BFD_RELOC_XTENSA_SLOT10_ALT BFD_RELOC_XTENSA_SLOT11_ALT BFD_RELOC_XTENSA_SLOT12_ALT BFD_RELOC_XTENSA_SLOT13_ALT BFD_RELOC_XTENSA_SLOT14_ALT BFD_RELOC_XTENSA_OP0 BFD_RELOC_XTENSA_OP1 BFD_RELOC_XTENSA_OP2 BFD_RELOC_XTENSA_ASM_EXPAND BFD_RELOC_XTENSA_ASM_SIMPLIFY BFD_RELOC_XTENSA_TLSDESC_FN BFD_RELOC_XTENSA_TLSDESC_ARG BFD_RELOC_XTENSA_TLS_DTPOFF BFD_RELOC_XTENSA_TLS_TPOFF BFD_RELOC_XTENSA_TLS_FUNC BFD_RELOC_XTENSA_TLS_ARG BFD_RELOC_XTENSA_TLS_CALL BFD_RELOC_Z80_DISP8 BFD_RELOC_Z8K_DISP7 BFD_RELOC_Z8K_CALLR BFD_RELOC_Z8K_IMM4L BFD_RELOC_LM32_CALL BFD_RELOC_LM32_BRANCH BFD_RELOC_LM32_16_GOT BFD_RELOC_LM32_GOTOFF_HI16 BFD_RELOC_LM32_GOTOFF_LO16 BFD_RELOC_LM32_COPY BFD_RELOC_LM32_GLOB_DAT BFD_RELOC_LM32_JMP_SLOT BFD_RELOC_LM32_RELATIVE BFD_RELOC_MACH_O_SECTDIFF BFD_RELOC_MACH_O_PAIR BFD_RELOC_MACH_O_X86_64_GOT BFD_RELOC_MICROBLAZE_32_LO BFD_RELOC_MICROBLAZE_32_ROSDA BFD_RELOC_MICROBLAZE_32_RWSDA BFD_RELOC_MICROBLAZE_64_NONE BFD_RELOC_MICROBLAZE_64_GOTPC BFD_RELOC_MICROBLAZE_64_GOT BFD_RELOC_MICROBLAZE_64_PLT BFD_RELOC_MICROBLAZE_COPY VRT32 q T z L _ t l bfd_generic_get_relocated_section_contents s + > P d { ' > U l , C Z q , C Z q # < P ^ o / A S i  6 K ` u 2 2 - @ S i ~ 2 D V l 5 Q l 7 S o 2 O l $ 9 M c y + B Z v 3 G [ o " ; V n * ? V k 8 P i ! 9 O f | ' C Y 2 2 p + D Z p - A X u 3 43 T3 ) E ` { , A ] { & A \ w + @ T l " = X r 5 P j . H a { t3 2 K f | / G d 8 P h z 2 E \ s - F ` z 1 J a z $ @ \ x 9 R n 3 ! : N e  9 S p 6 T r 3 3 3 4 <4 \4 |4 4 4 " : T m 4 5 (5 H5 % ; Q f y h5 5 3 G ^ s 5 L c ~ ) B [ t " : R j ( @ ] y ( A ] 5 z % = U m 6 J a s # 9 K ^ q * = T n : S i % = Q i ' : M d w , 5 F 5 _ u 2 L e x * < R i 6 (6 H6 & ; h6 S q 6 6 6 4 J ^ r - A U i ~ . E ^ p % 8 L _ v 0 D Y n 3 L c  6 7 47 T7 2 P n t7 7 7 7 8 (8 % = O g L8 } l8 ( < T l ( A Z n 2 J d ~ 2 L j 0 B T j 8 8 1 E U f w * > R g ~ ! 7 M d } 8 " 5 J _ t 8 $ : P f | / H a ~ ' : M ` s 0 I [ n 5 L c w $ 9 P g ~ 9 R i , D [ r ( B Z q " ; R m 5 L ` y 2 J b z ( @ X q " : S k 2 N 9 49 T9 t9 k ( C [ s 1 E ] s % @ ^ v 1 G ] r ) = S g } - C [ o / C Y m + ? U i ~ 8 P i ~ % : O e { ( @ S f } ) = P d x , F ^ x ' ? U k ! 6 I b { ! 8 P g z , A V k # 9 M d w ( = S n - D [ m  9 " ; U o 5 L d | 2 L f " = X s 1 M i 6 S o ' ; Q g 9 9 ) 9 : D: l: : : E : ` ~ : ; @; `; ) _bfd_clear_contents _bfd_relocate_contents bfd_perform_relocation bfd_check_overflow bfd_get_reloc_size %P%F: --relax and -r may not be used together BFD_RELOC_SPARC_GOTDATA_OP_HIX22 BFD_RELOC_SPARC_GOTDATA_OP_LOX10 BFD_RELOC_MIPS_TLS_DTPREL_HI16 BFD_RELOC_MIPS_TLS_DTPREL_LO16 BFD_RELOC_FRV_FUNCDESC_GOTOFF12 BFD_RELOC_FRV_FUNCDESC_GOTOFFHI BFD_RELOC_FRV_FUNCDESC_GOTOFFLO BFD_RELOC_X86_64_GOTPC32_TLSDESC BFD_RELOC_PPC64_PLTGOT16_LO_DS BFD_RELOC_PPC64_TPREL16_HIGHER BFD_RELOC_PPC64_TPREL16_HIGHERA BFD_RELOC_PPC64_TPREL16_HIGHEST BFD_RELOC_PPC64_TPREL16_HIGHESTA BFD_RELOC_PPC64_DTPREL16_LO_DS BFD_RELOC_PPC64_DTPREL16_HIGHER BFD_RELOC_PPC64_DTPREL16_HIGHERA BFD_RELOC_PPC64_DTPREL16_HIGHEST BFD_RELOC_PPC64_DTPREL16_HIGHESTA BFD_RELOC_THUMB_PCREL_BRANCH12 BFD_RELOC_THUMB_PCREL_BRANCH20 BFD_RELOC_THUMB_PCREL_BRANCH23 BFD_RELOC_THUMB_PCREL_BRANCH25 BFD_RELOC_ARM_THUMB_MOVW_PCREL BFD_RELOC_ARM_THUMB_MOVT_PCREL BFD_RELOC_ARM_T32_CP_OFF_IMM_S2 BFD_RELOC_SH_IMM_MEDLOW16_PCREL BFD_RELOC_SH_IMM_MEDHI16_PCREL BFD_RELOC_BFIN_12_PCREL_JUMP_S BFD_RELOC_BFIN_24_PCREL_CALL_X BFD_RELOC_BFIN_24_PCREL_JUMP_L BFD_RELOC_BFIN_FUNCDESC_GOT17M4 BFD_RELOC_BFIN_FUNCDESC_GOTOFF17M4 BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO BFD_RELOC_V850_SDA_16_16_OFFSET BFD_RELOC_V850_SDA_15_16_OFFSET BFD_RELOC_V850_ZDA_16_16_OFFSET BFD_RELOC_V850_ZDA_15_16_OFFSET BFD_RELOC_V850_TDA_16_16_OFFSET BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET BFD_RELOC_V850_CALLT_6_7_OFFSET BFD_RELOC_V850_CALLT_16_16_OFFSET BFD_RELOC_V850_LO16_SPLIT_OFFSET BFD_RELOC_V850_16_SPLIT_OFFSET BFD_RELOC_V850_CALLT_15_16_OFFSET BFD_RELOC_MCORE_PCREL_IMM11BY2 BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2 BFD_RELOC_MMIX_PUSHJ_STUBBABLE BFD_RELOC_MMIX_BASE_PLUS_OFFSET BFD_RELOC_IA64_LTOFF_FPTR32MSB BFD_RELOC_IA64_LTOFF_FPTR32LSB BFD_RELOC_IA64_LTOFF_FPTR64MSB BFD_RELOC_IA64_LTOFF_FPTR64LSB BFD_RELOC_MSP430_16_PCREL_BYTE BFD_RELOC_MACH_O_X86_64_BRANCH32 BFD_RELOC_MACH_O_X86_64_BRANCH8 BFD_RELOC_MACH_O_X86_64_GOT_LOAD BFD_RELOC_MACH_O_X86_64_SUBTRACTOR32 BFD_RELOC_MACH_O_X86_64_SUBTRACTOR64 BFD_RELOC_MACH_O_X86_64_PCREL32_1 BFD_RELOC_MACH_O_X86_64_PCREL32_2 BFD_RELOC_MACH_O_X86_64_PCREL32_4 BFD_RELOC_MICROBLAZE_32_LO_PCREL BFD_RELOC_MICROBLAZE_32_SYM_OP_SYM BFD_RELOC_MICROBLAZE_64_GOTOFF BFD_RELOC_MICROBLAZE_32_GOTOFF @@overflow: BFD_RELOC_UNUSED@@ section.c *COM* *UND* *IND* .%d bfd_map_over_sections bfd_get_unique_section_name ; ; sB ; ` .stabstr Unsupported .stab relocation %c%c%c%c%c%c%c code *DEBUG* .drectve .edata .fini .idata .init .pdata .rdata .sbss .scommon zerovars [ b v< t d {< N N < i < e < t < i < t < p < r r < s < c g t VS d < b armeb-*-netbsdelf* arm-*-netbsdelf* arm-*-nto* nto*arm* arm-*-rtems* armeb-*-elf arm*b-*-linux-* strongarm-*-kaos* arm-*-freebsd* arm*-*-linux-* arm*-*-conix* arm*-*-uclinux* arm-*-kfreebsd*-gnu arm*-*-eabi* arm9e-*-elf thumb-*-elf strongarm-*-elf xscale-*-elf = @} =  = =  =  = = @} = =  n> = > > > /> C>  P>  \>  h>  x>   @} @E G X K I P hash.c ! ;A  bfd_hash_replace bfd_hash_rename   ?  ?  i q q v Z 1 + H O ( ? # [ < | ? j L \ _bfd_generic_section_already_linked _bfd_default_link_order set_symbol_from_hash _bfd_generic_reloc_link_order _bfd_generic_link_write_global_symbol _bfd_generic_link_output_symbols _bfd_generic_link_add_one_symbol linker.c __imp_%s __real_ %B: warning: ignoring duplicate section `%A' %B: warning: duplicate section `%A' has different size %F%P: already_linked_table: %E Attempt to do relocatable link with %s input and %s output %B: indirect symbol `%s' to `%s' is a loop $$ $$ .sec%d %-5s %s srec.c symbolsrec %B:%d: Unexpected character `%s' in S-record file %B:%d: Bad checksum in S-record file q v z z * D w t v x s @t w s `s s t v x s @t w s `s s { p { { | | | | r r ` } r r 0z r r r r r | | @| { | | | r | | | | | | P 0 Py | | | z | | P s s | | p p 0 p 0 0 `| `| `| `| `| D w t v x s @t w s `s s t v x s @t w s `s s { { { | | | | r r ` } r r 0z r r r r r | | @| { | | | r | | | | | | P 0 Py | | | z | | P s s | | p p 0 p 0 0 `| `| `| `| `| 0123456789ABCDEF Warning: Writing section `%s' to huge (ie negative) file offset 0x%lx. _binary_%s_%s { t v x s @t w s `s s t v x s @t w s `s s { { { | | | | r | | r r ` } r r 0z r r r r r | | @| { | | | r | | | | | | r Py | | | z | | P s s | | p 0 p 0 0 `| `| `| `| `| tekhex.c %0781010 tekhex ( ) ) ) ( ( ( ( ( ( ( ( ( ( ) ( ( ( ( {( ) ( ( ( ( ( ( ( ( ( ( ( !) 2) ( 2) ( ( ( ( ( ( ( ( ( ( 2) ( ( ( ( C) J w t v x s @t w s `s s t v x s @t w s `s s { ) { { | p) | | ' | r r ` # } r r 0z r r r r r | | @| { | | | r | | | | | | ! `$ @$ Py | | | z | | P s s | | 0$ 0# ! p 0 p 0 0 `| `| `| `| `| 0123456789ABCDEF tekhex_write_object_contents out ihex.c ihex %B: internal error in ihex_read_section %B: bad section length in ihex_read_section %B:%d: unexpected character `%s' in Intel Hex file %s: address 0x%s out of range for Intel Hex file %B:%u: bad checksum in Intel Hex file (expected %u, found %u) %B:%u: bad extended address record length in Intel Hex file %B:%u: bad extended start address length in Intel Hex file %B:%u: bad extended linear address record length in Intel Hex file %B:%u: bad extended linear start address length in Intel Hex file %B:%u: unrecognized ihex type %u in Intel Hex file ; < < H= = g; M t v x s @t w s `s s t v x s @t w s `s s { p7 { { | - | | 4 | r r ` / } r r 0z r r r r r | | @| { | | | r | | | | | | r r r r | | | | z | | `| | s s | | @/ 0. - p 0 p 0 0 `| `| `| `| `| 0123456789ABCDEF ./dwarf2.c .debug_info .zdebug_info .gnu.linkonce.wi. %s/%s/%s <unknown> .debug_abbrev .zdebug_abbrev .debug_aranges .zdebug_aranges .debug_frame .zdebug_frame .debug_line .zdebug_line .debug_loc .zdebug_loc .debug_macinfo .zdebug_macinfo .debug_pubnames .zdebug_pubnames .debug_pubtypes .zdebug_pubtypes .zdebug_ranges .debug_static_func .zdebug_static_func .debug_static_vars .zdebug_static_vars .debug_str .zdebug_str .debug_types .zdebug_types .debug_sfnames .zdebug_sfnames .debug_srcinfo .zebug_srcinfo .debug_funcnames .zdebug_funcnames .debug_typenames .zdebug_typenames .debug_varnames .zdebug_varnames .debug_weaknames .zdebug_weaknames Dwarf Error: Can't find %s section. Dwarf Error: Offset (%lu) greater than or equal to %s size (%lu). Dwarf Error: Invalid or unhandled FORM value: %u. Dwarf Error: Could not find abbrev number %u. Dwarf Error: mangled line number section (bad file number). Dwarf Error: Unhandled .debug_line version %d. Dwarf Error: Invalid maximum operations per instruction. Dwarf Error: mangled line number section. /projects/hnd/tools/linux/hndtools-arm-linux-2.6.36-uclibc-4.5.3/lib/debug Dwarf Error: found dwarf version '%u', this reader only handles version 2, 3 and 4 information. Dwarf Error: found address size '%u', this reader can not handle sizes greater than '%u'. Dwarf Error: found address size '%u', this reader can only handle address sizes '2', '4' and '8'. Dwarf Error: Bad abbrev number: %u. QJ J QJ M K J J J K +K L L L M IM 6L aL K J J J M L K +K L QJ QJ QJ QJ QJ QJ J \ 5_ _ _ ` C` ^ ^ d` ` find_line read_address scan_unit_for_symbols find_abstract_instance_name ZLIB 1.2.3 compress.c bfd_get_full_section_contents verilog X w t v x s @t w s `s s t v x s @t w s `s s { { { { | | | | | | r r ` ~ } r r 0z r r r r r | | @| { | | | r | | | | | | `| `| r r | | | | z | | `| | s s | | r | | | r | r r | | | | | | r | `| `| `| `| `| 0123456789ABCDEF .ARM.exidx elf32-arm.c .reg .glue_7 .glue_7t .v4_bx .stub .dynamic .note.gnu.arm.ident %08x_%s+%x_%d %08x_%x:%x+%x_%d __vfp11_veneer_%x __vfp11_veneer_%x_r __%s_from_arm __%s_from_thumb .got.plt .dynstr .dynsym .gnu.version .gnu.version_d .rel.plt .rela.plt .gnu.version_r .rel.got .rela.got .rel.bss .rela.bss .tls_vars (local) out of range unsupported relocation unknown error .gnu.linkonce.armexidx. __real_%s .dynbss .vfp11_veneer %B: bad symbol index: %d a local symbol private flags = %lx: [interworking enabled] [APCS-26] [APCS-32] [VFP float format] [Maverick float format] [FPA float format] [position independent] [new ABI] [old ABI] [software FP] [Version1 EABI] [sorted symbol table] [unsorted symbol table] [Version2 EABI] [Version3 EABI] [Version4 EABI] [Version5 EABI] [BE8] [LE8] <EABI version unrecognised> [relocatable executable] [has entry point] <Unrecognised flag bits set> $a __bx_r%d /usr/lib/ld.so.1 unnamed __%s_veneer %x:%x elf32-bigarm-vxworks elf32-littlearm-vxworks elf32-bigarm-symbian elf32-littlearm-symbian aeabi .ARM.attributes $t $d R_ARM_NONE R_ARM_PC24 R_ARM_ABS32 R_ARM_REL32 R_ARM_LDR_PC_G0 R_ARM_ABS16 R_ARM_ABS12 R_ARM_THM_ABS5 R_ARM_ABS8 R_ARM_SBREL32 R_ARM_THM_CALL R_ARM_THM_PC8 R_ARM_BREL_ADJ R_ARM_SWI24 R_ARM_SWI8 R_ARM_XPC25 R_ARM_THM_XPC22 R_ARM_TLS_DTPMOD32 R_ARM_TLS_DTPOFF32 R_ARM_TLS_TPOFF32 R_ARM_COPY R_ARM_GLOB_DAT R_ARM_JUMP_SLOT R_ARM_RELATIVE R_ARM_GOTOFF32 R_ARM_GOTPC R_ARM_GOT32 R_ARM_PLT32 R_ARM_CALL R_ARM_JUMP24 R_ARM_THM_JUMP24 R_ARM_BASE_ABS R_ARM_ALU_PCREL_7_0 R_ARM_ALU_PCREL_15_8 R_ARM_ALU_PCREL_23_15 R_ARM_LDR_SBREL_11_0 R_ARM_ALU_SBREL_19_12 R_ARM_ALU_SBREL_27_20 R_ARM_TARGET1 R_ARM_ROSEGREL32 R_ARM_V4BX R_ARM_TARGET2 R_ARM_PREL31 R_ARM_MOVW_ABS_NC R_ARM_MOVT_ABS R_ARM_MOVW_PREL_NC R_ARM_MOVT_PREL R_ARM_THM_MOVW_ABS_NC R_ARM_THM_MOVT_ABS R_ARM_THM_MOVW_PREL_NC R_ARM_THM_MOVT_PREL R_ARM_THM_JUMP19 R_ARM_THM_JUMP6 R_ARM_THM_ALU_PREL_11_0 R_ARM_THM_PC12 R_ARM_ABS32_NOI R_ARM_REL32_NOI R_ARM_ALU_PC_G0_NC R_ARM_ALU_PC_G0 R_ARM_ALU_PC_G1_NC R_ARM_ALU_PC_G1 R_ARM_ALU_PC_G2 R_ARM_LDR_PC_G1 R_ARM_LDR_PC_G2 R_ARM_LDRS_PC_G0 R_ARM_LDRS_PC_G1 R_ARM_LDRS_PC_G2 R_ARM_LDC_PC_G0 R_ARM_LDC_PC_G1 R_ARM_LDC_PC_G2 R_ARM_ALU_SB_G0_NC R_ARM_ALU_SB_G0 R_ARM_ALU_SB_G1_NC R_ARM_ALU_SB_G1 R_ARM_ALU_SB_G2 R_ARM_LDR_SB_G0 R_ARM_LDR_SB_G1 R_ARM_LDR_SB_G2 R_ARM_LDRS_SB_G0 R_ARM_LDRS_SB_G1 R_ARM_LDRS_SB_G2 R_ARM_LDC_SB_G0 R_ARM_LDC_SB_G1 R_ARM_LDC_SB_G2 R_ARM_MOVW_BREL_NC R_ARM_MOVT_BREL R_ARM_MOVW_BREL R_ARM_THM_MOVW_BREL_NC R_ARM_THM_MOVT_BREL R_ARM_THM_MOVW_BREL R_ARM_PLT32_ABS R_ARM_GOT_ABS R_ARM_GOT_PREL R_ARM_GOT_BREL12 R_ARM_GOTOFF12 R_ARM_GNU_VTENTRY R_ARM_GNU_VTINHERIT R_ARM_THM_JUMP11 R_ARM_THM_JUMP8 R_ARM_TLS_GD32 R_ARM_TLS_LDM32 R_ARM_TLS_LDO32 R_ARM_TLS_IE32 R_ARM_TLS_LE32 R_ARM_TLS_LDO12 R_ARM_TLS_LE12 R_ARM_TLS_IE12GP R_ARM_RREL32 R_ARM_RABS32 R_ARM_RPC24 R_ARM_RBASE variable-size 32-bit Pre v4 ARM v4 ARM v4T ARM v5T ARM v5TE ARM v5TEJ ARM v6 ARM v6KZ ARM v6T2 ARM v6K ARM v7 ARM v6-M ARM v6S-M .init_array .fini_array .preinit_array Warning: Not setting interworking flag of %B since it has already been specified as non-interworking Warning: Clearing the interworking flag of %B due to outside request %B: warning: selected VFP11 erratum workaround is not necessary for target architecture %B: Unknown mandatory EABI object attribute %d Warning: %B: Unknown EABI object attribute %d %B: error: VFP11 veneer out of range %B: error: Cortex-A8 erratum stub is allocated in unsafe location %B: error: Cortex-A8 erratum stub out of range (input file too large) %B(%s): warning: interworking not enabled. first occurrence: %B: Thumb call to ARM %B(%s): warning: interworking not enabled. first occurrence: %B: ARM call to Thumb %B: unable to find VFP11 veneer `%s' unable to find ARM glue '%s' for '%s' %B(%s): warning: interworking not enabled. first occurrence: %B: arm call to thumb unable to find THUMB glue '%s' for '%s' Invalid TARGET2 relocation type '%s'. %B: Warning: Arm BLX instruction targets Arm function '%s'. %B: Warning: Thumb BLX instruction targets thumb function '%s'. %B(%s): warning: interworking not enabled. first occurrence: %B: thumb call to arm %B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object %B(%A+0x%lx): Overflow whilst splitting 0x%lx for group relocation %s %B(%A+0x%lx): Only ADD or SUB instructions are allowed for ALU group relocations %B(%A+0x%lx): %s relocation against SEC_MERGE section %B(%A+0x%lx): %s used with TLS symbol %s %B(%A+0x%lx): %s used with non-TLS symbol %s %B(%A+0x%lx): unresolvable %s relocation against symbol `%s' dynamic variable `%s' is zero size %B: relocation %s against `%s' can not be used when making a shared object; recompile with -fPIC [floats passed in float registers] [dynamic symbols use segment index] [mapping symbols precede others] Warning: Clearing the interworking flag of %B because non-interworking code in %B has been linked with it Error: %B has both the current and legacy Tag_MPextension_use attributes error: %B uses VFP register arguments, %B does not error: %B: Unknown CPU architecture error: %B: Conflicting CPU architectures %d/%d error: %B: unable to merge virtualization attributes with %B error: %B: Conflicting architecture profiles %c/%c Warning: %B: Conflicting platform configuration error: %B: Conflicting use of R9 error: %B: SB relative addressing conflicts with use of R9 warning: %B uses %u-byte wchar_t yet the output is to use %u-byte wchar_t; use of wchar_t values across objects may fail warning: %B uses %s enums yet the output is to use %s enums; use of enum values across objects may fail error: %B uses iWMMXt register arguments, %B does not error: fp16 format mismatch between %B and %B DIV usage mismatch between %B and %B %B has has both the current and legacy Tag_MPextension_use attributes error: %B is already in final BE8 format error: Source object %B has EABI version %d, but target %B has EABI version %d error: %B is compiled for APCS-%d, whereas target %B uses APCS-%d error: %B passes floats in float registers, whereas %B passes them in integer registers error: %B passes floats in integer registers, whereas %B passes them in float registers error: %B uses VFP instructions, whereas %B does not error: %B uses FPA instructions, whereas %B does not error: %B uses Maverick instructions, whereas %B does not error: %B does not use Maverick instructions, whereas %B does error: %B uses software FP, whereas %B uses hardware FP error: %B uses hardware FP, whereas %B uses software FP Warning: %B supports interworking, whereas %B does not Warning: %B does not support interworking, whereas %B does %B: BE8 images only valid in big-endian mode. %s: cannot create stub entry %s | | | | f f f f f f e e e e e e e e e e e e e e e e e e e e l e e $ J e P l l l l m m m m m l l 6 6 6 m m m m m l l l 6 6 6 l l l p : p ] ) ) ) ) ) 0& ' (% (% 0& 0& ' 0& 0& 0& ' 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& ' ' 1' ' ' ' ' 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& ' % % (% (% % % (% (% ' 0& 0& 0& (% (% 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 0& 1' 0& 0& 0& ' @( 0& 0& 1' ' 0& 1' XE XE @ A mE mE B mE mE F F CG B P@ tG mE P@ mE mE mE ~@ B C XE XE C XE XE XE > mE > mE > >D > > > mE > D > > > > > > > > > > > > > > > > > > > XE XE mE E E > F 4 ( 0 S PS 0 ? / t v x s @t w s `s s t v x s @t w s `s s { p | S 0 | ^ ` R ~ } < = 6 0 ` P 0 ` P r ` p p6 @ 5 3 | P P p 3 @^ p 0 P/ / p - K @ 0  R ? / `u v x t pt w @s s s `u v x t pt w @s s s { p | S 0 | ^ ` R ~ } < = 6 0 ` P 0 ` P r ` p p6 @ 5 3 | P P p 3 @^ p 0 P/ / p - K @ 0 @} n^ ? / t v x s @t w s `s s t v x s @t w s `s s { p | S 0 | ^ ` R ~ } < = 6 0 ` P 0 ` P r ` p p6 @ 5 3 | P P p 3 @^ p 0 1 / p - K @ 0 ^ ? / `u v x t pt w @s s s `u v x t pt w @s s s { p | S 0 | ^ ` R ~ } < = 6 0 ` P 0 ` P r ` p p6 @ 5 3 | P P p 3 @^ p 0 1 / p - K @ 0 ^ ? / t v x s @t w s `s s t v x s @t w s `s s { p | S 0 | ^ ` R ~ } < = 6 0 ` P 0 ` P r ` p p6 @ 5 3 | P P p 3 @^ p 0 p1 / p - K @ 0 @ ^ ? / `u v x t pt w @s s s `u v x t pt w @s s s { p | S 0 | ^ ` R ~ } < = 6 0 ` P 0 ` P r ` p p6 @ 5 3 | P P p 3 @^ p 0 p1 / p - K @ 0 @ @ elf32_arm_write_section 7^ ^ ^ ` ^ ` ^ ` ^ ` _ ` _ ` "_ ` ._ ` :_ ` I_ ` T_ ` b_ ` q_ ` _ ` _ ` _ ` _ ` _ ` _ ` _ ` _ ` _ ` ` ` ` ` #` ` 2` ` A` ` M` ` Y` ` e` ` p` ` }` / / ` ` ` ` ! ` ` " ` ` # ` ` $ ` ` % ` a & ` a ' ` +a ( ` <a ) ` Ga * ` Ua   + ` ba , ` ta - ` a . ` a / ` a p p 0 ` a p p 1 ` a p p 2 ` a p p 3 ` a /? /? 4 ` b 5 ` b 6 ` 3b 7 ` Bb 8 ` Rb 9 ` bb : ` ub ; ` b < ` b = ` b > ` b ? ` b @ ` b A ` b B ` b C ` c D ` c E ` +c F ` ;c G ` Nc H ` ^c I ` qc J ` c K ` c L ` c M ` c N ` c O ` c P ` c Q ` c R ` d S ` d T ` $d U ` 7d V ` Gd W ` Wd p p X ` nd p p Y ` d p p Z [ \ ] ^ ` d _ ` d ` ` d a ` d b ` d c d d e d f ` e g ` e h *e i ` 9e j ` Ie k Ye l ` he m ` we n ` e o ` e ` e ` e ` e ` e elf32_arm_final_link_relocate allocate_dynrelocs create_got_section elf32_arm_create_dynamic_sections F f 3 g 4 ` & ' * ) h j i k l e d + , - . / 0 1 2 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S ( e e e e e f f f f &f /f 8f @f Gf Pf bfd_elf32_arm_vfp11_fix_veneer_locations bfd_elf32_arm_vfp11_erratum_scan bfd_arm_vfp11_insn_decode record_vfp11_erratum_veneer bfd_elf32_arm_process_before_allocation arm_stub_required_alignment @ ` / H F `G xG F / xG F xG F / xG F / / xG F H F D `G Z d[ l[ [ S Zf ff rf <in-memory> elfcode.h %s(%s): relocation %d has invalid symbol index %ld %s: version count (%ld) does not match symbol count (%ld) warning: %s has a corrupt string table index - ignoring Warning: %B is truncated: expected core file size >= %lu, found: %lu. F ( . : F U e u K K { { K K { K K K K { K K K K K K { K K K K K K K K K K K K K K K K K K K K K K K K { K K K K K K K K K K K K K K K K K K { 4 ( 0 @ 0 bfd_elf32_write_relocs bfd_elf32_swap_symbol_out .tls_data .rel.plt.unloaded .rela.plt.unloaded __GOTT_BASE__ __GOTT_INDEX__ h ` RELRO LINUX .reg2 .reg-xfp .reg-xstate .reg-ppc-vmx .reg-ppc-vsx .reg-s390-high-gprs .reg-s390-timer .reg-s390-todcmp .reg-s390-todpreg .reg-s390-ctrs .reg-s390-prefix %s/%d elf.c .rela LOPROC+%7.7x LOOS+%7.7x %8.8x *unknown* %s/%ld NetBSD-CORE .note.netbsdcore.procinfo OpenBSD .auxv .wcookie QNX .qnx_core_info .qnx_core_status/%ld .qnx_core_status SPU/ win32 .reg/%ld .module/%08lx GNU %s%d%s null shlib proc .symtab .strtab .shstrtab .symtab_shndx .gnu.libstr <Local sym> elf %lx (*none*) %s Base %-11s .internal .hidden .protected 0x%02x Program Header: 0x%lx %8s off 0x vaddr 0x paddr 0x align 2**%u filesz 0x memsz 0x flags %c%c%c Dynamic Section: PLTRELSZ PLTGOT RELASZ RELAENT STRSZ SYMENT INIT FINI SONAME RPATH SYMBOLIC RELENT DEBUG TEXTREL JMPREL BIND_NOW FINI_ARRAY FINI_ARRAYSZ RUNPATH PREINIT_ARRAY PREINIT_ARRAYSZ CHECKSUM PLTPADSZ MOVEENT MOVESZ POSFLAG_1 SYMINSZ SYMINENT CONFIG DEPAUDIT PLTPAD MOVETAB SYMINFO RELACOUNT RELCOUNT FLAGS_1 VERSYM VERDEF VERDEFNUM VERNEED VERNEEDNUM AUXILIARY GNU_HASH %-20s Version definitions: <corrupt> %d 0x%2.2x 0x%8.8lx %s Version References: required from %s: USED FILTER (null) %B: invalid SHT_GROUP entry .gnu.linkonce SHT_NULL SHT_PROGBITS SHT_SYMTAB SHT_STRTAB SHT_RELA SHT_HASH SHT_DYNAMIC SHT_NOTE SHT_NOBITS SHT_REL SHT_SHLIB SHT_DYNSYM LARGE_COMMON zdebug .data1 .gnu.linkonce.b .gnu.lto_ .gnu.liblist .gnu.conflict .gnu.hash .line .note.GNU-stack .rodata1 .tbss .tdata %B: unsupported relocation type %s %B: symbol `%s' required but not present %B symbol number %lu references nonexistent SHT_SYMTAB_SHNDX section %B: warning: Empty loadable segment detected, is this intentional ? warning: section `%A' type changed to PROGBITS %B: The first section in the PT_DYNAMIC segment is not the .dynamic section %B: Not enough room for program headers, try linking with -N %B: section %A lma %#lx adjusted to %#lx %B: section `%A' can't be allocated in segment %d %B: warning: allocated section `%s' not in segment %B: sh_link of section `%A' points to discarded section `%A' of `%B' %B: sh_link of section `%A' points to removed section `%A' of `%B' %B: warning: sh_link not set for section `%A' Unable to find equivalent output section for symbol '%s' from section '%s' %B: invalid string offset %u >= %lu for section `%s' 0x%8.8lx 0x%2.2x %2.2d %s %B: sh_link [%d] in section `%A' is incorrect %B: unknown [%d] section `%s' in group [%s] %B: Corrupt size field in group section header: 0x%lx %B: no group info for section %A %B: unable to initialize commpress status for section %s %B: unable to initialize decommpress status for section %s %B: invalid link %lu for reloc section %s (index %u) %B: don't know how to handle allocated, application specific section `%s' [0x%8x] %B: don't know how to handle processor specific section `%s' [0x%8x] %B: don't know how to handle OS specific section `%s' [0x%8x] %B: don't know how to handle section `%s' [0x%8x] e e e e e / e % e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e e Z Z Z Z Z _bfd_elf_no_info_to_howto get_program_header_size _bfd_elf_get_lineno rewrite_elf_program_header assign_file_positions_for_non_load_sections bfd_elf_set_group_contents ` @ ` @ @ 9 R Z @\ bfd_elf_get_elf_syms [ R Q *R GR Z d[ l[ < ff * [ t[ o [ o [ o 4 o A O o S < Zf Y _ i rf [ o t V l d \ @< x ~ R Q 8R VR undefined %s reference in complex symbol: %s %B: bad relocation section name `%s' %P%X: can not read symbols: %E %B: ignoring duplicate section `%A' %B: duplicate section `%A' has different size %B: warning: could not read contents of section `%A' %B: warning: duplicate section `%A' has different contents %B: %A+%lu: No symbol found for INHERIT %B: Too many sections: %d (>= %d) %B: relocation size mismatch in %B section %A unknown operator '%c' in complex symbol %B: bad reloc symbol index (0x%lx >= 0x%lx) for offset 0x%lx in section `%A' %B: non-zero symbol index (0x%lx) for offset 0x%lx in section `%A' when the object file has no symbol table %B: internal symbol `%s' in %B is referenced by DSO %B: hidden symbol `%s' in %B is referenced by DSO %B: local symbol `%s' in %B is referenced by DSO %B: could not find output section %A for input section %A %B: protected symbol `%s' isn't defined %B: internal symbol `%s' isn't defined %B: hidden symbol `%s' isn't defined %B: .preinit_array section is not allowed in DSO warning: type and size of dynamic symbol `%s' are not defined %B: version node not found for symbol %s %s: TLS definition in %B section %A mismatches non-TLS definition in %B section %A %s: TLS reference in %B mismatches non-TLS reference in %B %s: TLS definition in %B section %A mismatches non-TLS reference in %B %s: TLS reference in %B mismatches non-TLS definition in %B section %A Warning: gc-sections option ignored Removing unused section '%s' in file '%B' %A has both ordered [`%A' in %B] and unordered [`%A' in %B] sections %A has both ordered and unordered sections error: %B contains a reloc (0x%s) for section %A that references a non-existent global symbol %X`%s' referenced in section `%A' of %B: defined in discarded section `%A' of %B %B: Unable to sort relocs - they are in more than one size %B: Unable to sort relocs - they are of an unknown size Not enough memory to sort relocations %B: could not find output section %s warning: %s section has zero size %P: warning: creating a DT_TEXTREL in a shared object. %P: alternate ELF machine code found (%d) in %B, expecting %d %B: %s: invalid version %u (max %d) %B: %s: invalid needed version %d Warning: alignment %u of common symbol `%s' in %B is greater than the alignment (%u) of its section %A Warning: alignment %u of symbol `%s' in %B is smaller than %u in %B Warning: size of symbol `%s' changed from %lu in %B to %lu in %B Warning: type of symbol `%s' changed from %d to %d in %B %B: unexpected redefinition of indirect versioned symbol `%s' %B: undefined reference to symbol '%s' note: '%s' is defined in DSO %B so try adding it to the linker command line .gcc_except_table elflink.c .gnu.linkonce. .gnu.linkonce.t. .gnu.linkonce.r. __start_ __stop_ .end 0- ~ % ^ _GLOBAL_OFFSET_TABLE_ _PROCEDURE_LINKAGE_TABLE_ %s: undefined version: %s .gnu.attributes .tcommon 5 p p ! ! L L k } } E E &2 f9 f9 u9 u9 8 x _bfd_elf_section_already_linked elf_link_input_bfd elf_reloc_link_order elf_link_adjust_relocs elf_link_output_extsym elf_link_check_versioned_symbol get_value put_value bfd_elf_size_dynsym_hash_dynstr % C a @ elf_link_add_object_symbols bfd_elf_record_link_assignment elf-attrs.c error: %B: Object has vendor-specific contents that must be processed by the '%s' toolchain error: %B: Object tag '%d, %s' is incompatible with tag '%d, %s' _bfd_elf_parse_attributes _bfd_elf_obj_attrs_arg_type _bfd_elf_copy_obj_attributes bfd_elf_set_obj_attr_contents elf-strtab.c * * * ^ * * * * ^ J * _bfd_elf_write_section_eh_frame elf-eh-frame.c eh %P: fde encoding in %B(%A) prevents .eh_frame_hdr table being created. %P: error in %B(%A); no .eh_frame_hdr table will be created. %P: DW_EH_PE_datarel unspecified for this architecture. E k %B: Relocations in generic ELF (EM: %d) UNKNOWN )? ? / t v x s @t w s `s s t v x s @t w s `s s { p | 0 | ^ ` D ~ } c r r n 0 ` P 0 ` P r ` p | @ | P P p | @^ p 0 p 0 K @ 0 =? ? / `u v x t pt w @s s s `u v x t pt w @s s s { p | 0 | ^ ` D ~ } c r r n 0 ` P 0 ` P r ` p | @ | P P p | @^ p 0 p 0 K @ 0 arch: iWMMXt iWMMXt2 armv2 armv2a armv3 armv3M armv4 armv4t armv5 armv5t armv5te XScale ep9312 arm2 arm250 arm3 arm6 arm60 arm600 arm610 arm7 arm710 arm7500 arm7d arm7di arm7dm arm7dmi arm7tdmi arm8 arm810 arm9 arm920 arm920t arm9tdmi sa1 strongarm strongarm110 strongarm1100 xscale iwmmxt iwmmxt2 armv3m warning: unable to update contents of %s section in %s error: %B is compiled for the EP9312, whereas %B is compiled for XScale % 1 = I U a m y # G[ G[ ` # * 2 8 ? F N W \ c h o w # G[ # G[ # G[ # G[ # G[ P # G[ # G[ # G[ # G[ # G[ @ # G[ p # G[ # G[ stabs.c %B(%A+0x%lx): Stabs entry has invalid string index. %s: access beyond end of merged section (%ld) merge.c _bfd_merged_section_offset _bfd_add_merge_section _ada_ 'Input 'Output 'Read 'Write .Finalize .Adjust <%s> T%d const volatile const __restrict const volatile __restrict __ct __dt assign_ operator operator _imp__ __imp_ _GLOBAL_ __std__ __sti__ __vtbl__ virtual table global constructors keyed to global destructors keyed to import stub for false true JArray1Z unsigned __complex void bool wchar_t long double float int%u_t ... -2147483648 __pt__ __tm__ __ps__ __S {anonymous} template < > class 0123456789Qt __thunk_ __t type_info node type_info function static Demangling disabled auto GNU (g++) style demangling lucid Lucid (lcc) style demangling ARM style demangling hp HP (aCC) style demangling edg EDG style demangling gnu-v3 java Java style demangling gnat GNAT style demangling _elabb 'Elab_Body _elabs 'Elab_Spec _size 'Size _alignment 'Alignment _assign .":=" Oabs Oand Omod Onot Oor Orem Oxor Oeq One Olt Ole Ogt Oge Oadd Osubtract Oconcat Omultiply Odivide Oexpon ** nw new dl delete vn new [] vd delete [] as plus apl minus ami mult amu aml convert negate trunc_mod amd %= trunc_div adv truth_andif aa truth_orif oo truth_not postincrement pp postdecrement -- mm bit_ior aor bit_xor aer ^= bit_and aad bit_not co cl alshift arshift component -> rf indirect method_call ->() addr vc compound cm cond ?: cn max >? min <? mn nop ->* sz sizeof GD xD qD jD cD \D UD ND b b` ` b` b` Gc Wa b` b` b` b` b` a b` a +a b` ia b` ` b` ` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` b` +a b` b` b` b` ` Ae c c c c c c e c c c c c c c c ye c e Ae c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c Ae gd ` ` ` ` ` ` ` ` d ` ` ` ` ` d ` ` ` ` ` ` d d f c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c c ,f ,f ,f ,f ,f ,f ,f ,f ,f ,f c c c c c c c c c c c c c f c f c c c c c c c c c c c c c c c c c c c c c f c c g @g g c g c c &h c c Th c c c c c h h h c i ng g t~ t~ t~ t~ t~ t~ t~ t~ t~ t~ A{ A{ A{ A{ A{ A{ A{ A{ '~ { A{ A{ } A{  A{ A{ } |} A{ A{ A{ A{ 2} A{ } A{ A{ { A{ A{ A{ A{ A{ A{ A{ A{ | A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ A{ { { - | ?> G[ @ D % * @ E [ b m t  L ] , ] 5 ] > ] y $ ' ( ' / 2 : = H L ] ] ] 5 ] , K > Q > P ] T [ Z ] ^ h c ] g ] k > s z y y ] ] ] ] ] B Z B > > ] ] ] ] ] ] J Q Q ] " ] ! ] " ] XS ] WS ] * 4 9Q 4 7 4 : C O T ] lf E Y E \ M] e M] h m p m s w w z ~ ~ H[ virtual function thunk (delta:%d) for Automatic selection based on executable GNU (g++) V3 ABI-style demangling u u u u u u u u " A " " " " " " " " " C X X X X > X X X X X X X X b X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X Y x x x x x x x x x x x x x x x x x x x x @ @ @ @ @ @ @ @ @ @ I I I I I I I I I > I I I I I r @ 8 I c I I I I @ I I I I I I y y y y y y y y y y I y y y y I I I y y O y y y y y I I I I I I I I I I I I I I I I I I I I I I I I I I I I ? \ c I j q I I I I x I  I I I [ P P 5 } 3 # _ #  o      > > I I d p f ? 4 ^ 3  P @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ U I U I H , @ @ @ @ @ ] L ] ] 9 ] Q e ] $ ( y ] ] 5 = E ] ] " ] , ] ] [ h ] Z B ] ] ] ] Q > > > 9Q 4  " % ] H[ XS ] " VT ( 1 ( N N 4 U < A A L L c c Z p p g g ~ ~ u u U p t i i a b s t F i 1 + o 9 1 F d T $ 2 b (anonymous namespace) string literal std {default arg# }:: JArray VTT for construction vtable for -in- typeinfo for typeinfo name for typeinfo fn for non-virtual thunk to covariant return thunk to java Class for guard variable for reference temporary for hidden alias for _Sat _Accum _Fract ul java resource decltype ( {parm# {lambda( )# {unnamed type# restrict const complex imaginary ::* __vector( aN aS dV da delete[] eO eo lS mI mL na new[] oR pL pm ps qu rM rS alignof az boolean byte __float128 unsigned char unsigned int unsigned long unsigned __int128 unsigned short unsigned long long decimal32 decimal64 decimal128 half char16_t char32_t decltype(nullptr) std::allocator std::basic_string std::string std::istream basic_istream std::ostream basic_ostream std::iostream basic_iostream std::basic_string<char, std::char_traits<char>, std::allocator<char> > std::basic_istream<char, std::char_traits<char> > std::basic_ostream<char, std::char_traits<char> > std::basic_iostream<char, std::char_traits<char> > %s: error: too many @-files encountered out of memory w/ =0 30 )0 0 0 0 0 / / / / %I $ < ;G ]t B { =  0 $ ~ `2 fC O m A oE! a 0 P A A ?  & * " @ ` 0 P H X ?  " A ! ) ?  Cannot find prime bigger than %lu cccccccccccccccccccccccccccccccccccccccccccccccc ccccccc cccccccccccccccccccccccccc ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc C B B B B Q 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 !"#$%&'()*+,-./0123456789:;<=>?@abcdefghijklmnopqrstuvwxyz[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ABCDEFGHIJKLMNOPQRSTUVWXYZ{|}~ %s%sout of memory allocating %lu bytes after a total of %lu bytes undocumented error #%d
@# d$ $ $ ' [ 0 * , * P `% 4m % ` 0 ` 0 `w q \ Z R p pn @m g pf @ `^ ] b + # [ + + # @ ` 0 ` p b + # [ + + # @ `% ; ; ; ; x sB < 8 ; ` (< ?  h *R 8R GR VR fR sR Q Q R R R R R R R R R S 4 S !S 4S HS [S oS zS S S S S S S S S T T $T 4T ET VT # ( A ` , 0B , E > p + $ ` pf P 0 @ ` ` 0 0 P ` `% | p ^ ^ 0 pp 0 8'/ # ( A ` , 0B , E > + $ ` pf P 0 @ p ` 0 0 P ` `% | p ^ ^ 0 pp 0 #/ # ( A ` , 0B , E > + $ ` pf P 0 @ p ` 0 0 P ` `% | p ^ ^ 0 pp 0 "/ x A 0B | E > r p 0 0 P ` p `% p o 8 , $.$ @* P* j
GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-51) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-51) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-52) GCC: (GNU) 4.1.2 20080704 (Red Hat 4.1.2-51)
.symtab .strtab .shstrtab .interp .note.ABI-tag .gnu.hash .dynsym .dynstr .gnu.version .gnu.version_r .rel.dyn .rel.plt .init .text .fini .rodata .eh_frame_hdr .eh_frame .ctors .dtors .jcr .dynamic .got .got.plt .data .bss .comment
call_gmon_start crtstuff.c __CTOR_LIST__ __DTOR_LIST__ __JCR_LIST__ dtor_idx.5793 completed.5791 __do_global_dtors_aux frame_dummy __CTOR_END__ __FRAME_END__ __JCR_END__ __do_global_ctors_aux ldgram.c error_index error_names yy_stack_print yy_symbol_print yytname yydestruct yypact yytranslate yycheck yydefact yyr2 yyr1 yypgoto yydefgoto yytable yystos yyrline yyprhs yyrhs region sectype phdr_types.9443 ldlex-wrapper.c yy_get_previous_state yy_c_buf_p yy_start yy_last_accepting_cpos yy_last_accepting_state yy_ec yy_accept yy_base yy_chk yy_def yy_meta yy_nxt yy_load_buffer_state yy_buffer_stack_top yy_buffer_stack yy_n_chars yy_hold_char state_stack_p yy_did_buffer_switch_on_eof yy_buffer_stack_max yy_init yy_fatal_error yyensure_buffer_stack include_stack_ptr file_name_stack lineno_stack include_stack yy_init_buffer lex_warn_invalid yy_get_next_buffer input comment __PRETTY_FUNCTION__.9392 vers_node_nesting state_stack lexsup.c set_segment_start ld_options ldlang.c section_iterator_callback match_simple_wild walk_wild_section output_prev_sec_find insert_os_after section_already_linked stricpy hash_entry_addr_cmp sort_sections_by_lma ignore_bfd_errors topower lang_memory_region_list gc_section_callback find_relro_section_callback lang_list_insert_after entry_symbol_default map_option_f startup_file first_file os_region_check lang_vers_match version_expr_head_eq scan_for_self_assignment get_target unique_section_list lang_finalize_version_expr_head version_expr_head_hash version_index overlay_vma overlay_subalign overlay_max lang_list_remove_tail update_wild_statements statement_list opb_shift name_match unique_section_p check_section_callback input_statement_is_archive_path find_section archive_path walk_wild_consider_section walk_wild_section_specs1_wild1 walk_wild_section_general walk_wild_section_specs4_wild2 walk_wild_section_specs3_wild2 walk_wild_section_specs2_wild1 walk_wild_section_specs1_wild0 init_opb insert_undefined walk_wild_file lang_map_flags lang_one_common header_printed.14569 print_one_symbol stat_save_ptr stat_save __PRETTY_FUNCTION__.11334 __PRETTY_FUNCTION__.11326 compare_section __PRETTY_FUNCTION__.10902 output_section_callback_fast strcut name_compare closest_target_match winner lang_do_assignments_1 __PRETTY_FUNCTION__.14345 stat_obstack insert_pad zero_fill.13776 init_map_userdata sort_def_symbol map_obstack lang_memory_region_list_tail lang_get_regions overlay_list current_section lang_size_sections_1 __PRETTY_FUNCTION__.13974 stripped_excluded_sections new_statement placed_commons new_afile ldlang_sysrooted_script print_input_section print_dot print_statement print_statement_list __PRETTY_FUNCTION__.13606 lang_definedness_table current_target ldlang_open_output excluded_libs __PRETTY_FUNCTION__.12521 lookup_name open_input_bfds plugin_insert walk_wild lang_find_relro_sections_1 lang_gc_sections_1 check_input_sections lang_definedness_newfunc output_section_statement_newfunc output_section_statement_table exp_init_os init_os output_section_callback output_section_callback_tree_to_list map_input_to_output_sections default_common_section mri.c symbol_truncate mri_add_to_list subalignment alignment order only_load address alias __PRETTY_FUNCTION__.8869 done_tree ldctor.c called.9052 ctor_cmp ctor_prio ldmain.c unattached_reloc reloc_dangerous notice reloc_overflow __PRETTY_FUNCTION__.11519 multiple_definition __PRETTY_FUNCTION__.11248 undefined_symbol hash.11465 error_name.11463 error_count.11464 warning_callback warning_find_reloc constructor_callback add_to_set multiple_common add_archive_element header_printed.11181 get_relative_sysroot ld_cleanup link_callbacks ldwrite.c build_link_order __PRETTY_FUNCTION__.9163 ldexp.c make_abs new_abs new_number new_rel new_rel_from_abs align_n exp_print_token table.9198 exp_assop exp_fold_tree_1 ldemul.c ld_emulation ldver.c ldmisc.c last_file.11409 last_bfd.11408 last_function.11410 ldfile.c search_arch_tail_ptr check_for_scripts_dir try_open is_sysrooted_pathname search_tail_ptr ldfile_open_command_file_1 script_search.9818 slash search_arch_head ldcref.c cref_initialized check_nocrossref cref_table check_local_sym_xref cref_sort_array check_refs check_reloc_refs cref_symcount cref_fill_array entsize refsize tabsize old_tab alloc_mark old_count old_table old_size old_symcount cref_hash_newfunc plugin.c set_plugin_error error_plugin plugin_error_p is_ir_dummy_bfd plugins_list called_plugin last_plugin last_plugin_args_tail_chain_ptr tv_header_tags orig_notice_all orig_callbacks plugin_callbacks plugin_notice register_claim_file register_all_symbols_read register_cleanup add_symbols get_symbols add_input_file message get_input_file release_input_file add_input_library set_extra_library_path plugins_tail_chain_ptr earmelf_linux_eabi.c compare_output_sec_vma arm_for_each_input_file_wrapper stub_file real_func gldarmelf_linux_eabi_get_script gldarmelf_linux_eabi_load_symbols gldarmelf_linux_eabi_list_options gldarmelf_linux_eabi_append_to_separated_string gldarmelf_linux_eabi_add_options xtra_long.13482 gldarmelf_linux_eabi_place_orphan orphan_init_done.13324 hold.13314 hook_in_stub gldarmelf_linux_eabi_open_dynamic_archive arm_elf_create_output_section_statements fix_cortex_a8 pic_veneer no_wchar_size_warning no_enum_size_warning vfp11_denorm_fix use_blx fix_v4bx target2_type target1_is_rel gldarmelf_linux_eabi_finish thumb_entry_symbol buffer.11930 arm_elf_before_allocation byteswap_code gldarmelf_linux_eabi_find_statement_assignment depaudit audit gldarmelf_linux_eabi_find_exp_assignment gldarmelf_linux_eabi_map_segments gldarmelf_linux_eabi_after_allocation need_laying_out merge_exidx_entries build_section_lists group_size gldarm_layout_sections_again elf32_arm_add_stub_section arm_lang_for_each_input_file gldarmelf_linux_eabi_add_sysroot gldarmelf_linux_eabi_parse_ld_so_conf gldarmelf_linux_eabi_try_needed global_vercheck_needed gldarmelf_linux_eabi_vercheck global_vercheck_failed global_stat gldarmelf_linux_eabi_stat_needed global_found gldarmelf_linux_eabi_search_needed gldarmelf_linux_eabi_after_open gldarmelf_linux_eabi_check_needed global_needed initialized.12403 ld_so_conf.12404 gldarmelf_linux_eabi_write_build_id_section read_hex __PRETTY_FUNCTION__.12634 __PRETTY_FUNCTION__.12709 gldarmelf_linux_eabi_before_parse gldarmelf_linux_eabi_handle_option earmelfb_linux_eabi.c gldarmelfb_linux_eabi_get_script gldarmelfb_linux_eabi_load_symbols gldarmelfb_linux_eabi_list_options gldarmelfb_linux_eabi_append_to_separated_string gldarmelfb_linux_eabi_add_options gldarmelfb_linux_eabi_place_orphan gldarmelfb_linux_eabi_open_dynamic_archive gldarmelfb_linux_eabi_finish gldarmelfb_linux_eabi_find_statement_assignment gldarmelfb_linux_eabi_find_exp_assignment gldarmelfb_linux_eabi_map_segments gldarmelfb_linux_eabi_after_allocation gldarmelfb_linux_eabi_add_sysroot gldarmelfb_linux_eabi_parse_ld_so_conf gldarmelfb_linux_eabi_try_needed gldarmelfb_linux_eabi_vercheck gldarmelfb_linux_eabi_stat_needed gldarmelfb_linux_eabi_search_needed gldarmelfb_linux_eabi_after_open gldarmelfb_linux_eabi_check_needed gldarmelfb_linux_eabi_write_build_id_section gldarmelfb_linux_eabi_before_parse gldarmelfb_linux_eabi_handle_option archive.c hash_file_ptr eq_file_ptr normalize __PRETTY_FUNCTION__.9833 buf.8730 pad.9728 adjust_relative_path pathbuf_len.9472 pathbuf.9471 do_slurp_bsd_armap _bfd_calloc_wrapper archures.c bfd_archures_list bfd.c bfd_error _bfd_error_program_name bfd_elf_set_pagesize __PRETTY_FUNCTION__.13024 input_bfd input_error __PRETTY_FUNCTION__.12520 __PRETTY_FUNCTION__.12578 bfdio.c memory_btell memory_bflush memory_bmmap memory_bstat memory_bclose memory_bseek memory_bwrite memory_bread cache.c insert bfd_last_cache snip bfd_cache_delete open_files cache_iovec cache_bclose close_one bfd_cache_lookup_worker __PRETTY_FUNCTION__.8670 cache_bmmap __PRETTY_FUNCTION__.8805 cache_bstat cache_bflush cache_bwrite cache_bread cache_bseek cache_btell coffgen.c null_error_handler copy_name coff_write_symbol __PRETTY_FUNCTION__.9863 format.c init.c libbfd.c mask.8979 __PRETTY_FUNCTION__.8928 __PRETTY_FUNCTION__.8879 __PRETTY_FUNCTION__.8857 opncls.c opncls_btell opncls_bseek opncls_bread opncls_bwrite opncls_bclose opncls_bflush opncls_bmmap crc32_table.8955 opncls_bstat buffer.9087 separate_debug_file_exists buffer.8994 bfd_reserved_id_counter bfd_id_counter opncls_iovec __PRETTY_FUNCTION__.8655 reloc.c bfd_reloc_code_real_names __PRETTY_FUNCTION__.8695 __PRETTY_FUNCTION__.8673 bfd_howto_32 __PRETTY_FUNCTION__.9223 __PRETTY_FUNCTION__.9310 __PRETTY_FUNCTION__.8762 __PRETTY_FUNCTION__.9462 none_howto.9454 section.c bfd_section_init section_id.8691 __PRETTY_FUNCTION__.9177 __PRETTY_FUNCTION__.8756 global_syms syms.c cmpindexentry stt targets.c _bfd_find_arch_match find_target bfd_target_match _bfd_target_vector _bfd_associated_vector hash.c hash_size_primes.8859 bfd_default_hash_table_size strtab_hash_newfunc __PRETTY_FUNCTION__.8799 __PRETTY_FUNCTION__.8778 primes.8575 linker.c hash_entry_bfd fix_syms set_symbol_from_hash __PRETTY_FUNCTION__.9590 _bfd_section_already_linked_table already_linked_newfunc __PRETTY_FUNCTION__.9903 generic_add_output_symbol __PRETTY_FUNCTION__.9618 archive_hash_newfunc default_indirect_link_order __PRETTY_FUNCTION__.9717 __PRETTY_FUNCTION__.9647 __PRETTY_FUNCTION__.9499 link_action __PRETTY_FUNCTION__.9240 generic_link_add_symbol_list generic_link_check_archive_element generic_link_check_archive_element_collect generic_link_check_archive_element_no_collect generic_link_add_symbols srec.c srec_sizeof_headers srec_get_symtab_upper_bound srec_write_record digs internal_srec_write_object_contents symbolsrec_write_object_contents srec_write_object_contents srec_init inited.8730 srec_canonicalize_symtab srec_mkobject srec_bad_byte srec_get_byte srec_scan symbolsrec_object_p srec_object_p srec_set_section_contents srec_set_arch_mach srec_get_symbol_info srec_print_symbol srec_get_section_contents binary.c binary_mkobject binary_get_symtab_upper_bound binary_sizeof_headers binary_set_section_contents binary_get_symbol_info mangle_name binary_canonicalize_symtab binary_get_section_contents binary_object_p tekhex.c getvalue getsym tekhex_canonicalize_symtab tekhex_get_symtab_upper_bound writevalue tekhex_sizeof_headers tekhex_make_empty_symbol find_chunk move_section_contents tekhex_set_section_contents tekhex_get_section_contents tekhex_set_arch_mach tekhex_get_symbol_info tekhex_print_symbol out sum_block __PRETTY_FUNCTION__.8946 tekhex_init inited.8569 writesym tekhex_write_object_contents __PRETTY_FUNCTION__.9036 tekhex_mkobject tekhex_object_p first_phase ihex.c ihex_sizeof_headers ihex_mkobject ihex_set_section_contents ihex_set_arch_mach ihex_get_section_contents ihex_bad_byte ihex_write_record digs.9134 ihex_write_object_contents ihex_object_p inited.8717 dwarf2.c read_1_byte read_2_bytes read_4_bytes read_8_bytes read_n_bytes lookup_abbrev compare_sequences comp_unit_contains_address reverse_funcinfo_list reverse_varinfo_list arange_add read_address __PRETTY_FUNCTION__.11865 find_debug_info read_section read_rangelist create_info_hash_table info_hash_table_newfunc read_string read_attribute_value read_attribute find_abstract_instance_name __PRETTY_FUNCTION__.12689 add_line_info concat_filename scan_unit_for_symbols __PRETTY_FUNCTION__.12799 decode_line_info comp_unit_maybe_decode_line_info comp_unit_find_line comp_unit_find_nearest_line lookup_info_hash_table insert_info_hash_table stash_maybe_update_info_hash_tables find_line __PRETTY_FUNCTION__.13493 simple.c simple_dummy_warning simple_dummy_undefined_symbol simple_dummy_reloc_overflow simple_dummy_reloc_dangerous simple_dummy_unattached_reloc simple_dummy_multiple_definition simple_dummy_einfo simple_save_output_info simple_restore_output_info compress.c __PRETTY_FUNCTION__.8679 verilog.c verilog_set_section_contents verilog_set_arch_mach verilog_write_object_contents verilog_mkobject inited.8848 elf32-arm.c elf32_arm_howto_from_type elf32_arm_howto_table_1 elf32_arm_howto_table_2 elf32_arm_info_to_howto elf32_arm_reloc_type_lookup elf32_arm_reloc_map a8_reloc_compare bfd_arm_vfp11_regno bfd_arm_vfp11_write_mask bfd_arm_vfp11_antidependency arm_real_reloc_type dtpoff_base tpoff elf32_arm_abs12_reloc calculate_group_reloc_mask elf32_arm_obj_attrs_arg_type elf32_arm_obj_attrs_order get_secondary_compatible_arch elf32_arm_get_symbol_type elf32_arm_readonly_dynrelocs elf32_arm_post_process_headers elf32_arm_reloc_type_class elf32_arm_section_flags get_arm_elf_section_data elf32_arm_output_stub_sym elf32_arm_compare_mapping offset_prel31 copy_exidx_entry elf32_arm_symbol_processing elf32_arm_is_function_type elf32_arm_symbian_plt_sym_val put_arm_insn put_thumb_insn elf32_arm_additional_program_headers elf32_arm_set_private_flags elf32_arm_obj_attrs_handle_unknown bfd_arm_vfp11_insn_decode __PRETTY_FUNCTION__.13192 elf32_arm_write_section __PRETTY_FUNCTION__.17969 make_branch_to_a8_stub elf32_arm_output_glue_section find_stub_size_and_template stub_definitions arm_size_one_stub elf32_arm_nabi_grok_psinfo elf32_arm_nabi_grok_prstatus elf32_arm_copy_indirect_symbol elf32_arm_begin_write_processing elf32_arm_to_thumb_export_stub elf32_arm_symbian_begin_write_processing check_use_blx elf32_arm_gc_sweep_hook using_thumb2 arm_type_of_stub elf32_arm_section_map_add elf32_arm_output_map_sym names.17580 elf32_arm_output_arch_local_syms arm_map_one_stub elf32_arm_output_plt_map elf32_arm_gc_mark_extra_sections elf32_arm_gc_mark_hook elf32_arm_modify_segment_map elf32_arm_symbian_modify_segment_map arm_build_one_stub elf32_arm_final_write_processing elf32_arm_vxworks_final_write_processing elf32_arm_stub_name __PRETTY_FUNCTION__.13456 elf32_arm_create_thumb_stub find_thumb_glue elf32_arm_finish_dynamic_sections elf32_arm_finish_dynamic_symbol elf32_arm_vxworks_exec_plt_entry elf32_arm_vxworks_shared_plt_entry elf32_arm_get_stub_entry elf32_arm_final_link_relocate __PRETTY_FUNCTION__.14183 elf32_arm_relocate_section __PRETTY_FUNCTION__.11890 elf32_arm_fake_sections record_arm_to_thumb_glue allocate_dynrelocs __PRETTY_FUNCTION__.16507 elf32_arm_adjust_dynamic_symbol arm_allocate_glue_section_space create_got_section __PRETTY_FUNCTION__.11482 elf32_arm_check_relocs elf32_arm_create_dynamic_sections __PRETTY_FUNCTION__.11505 elf32_arm_section_from_shdr elf32_arm_object_p elf32_arm_final_link elf32_arm_hash_table_free elf32_arm_link_hash_table_create elf32_arm_link_hash_newfunc stub_hash_newfunc elf32_arm_symbian_link_hash_table_create elf32_arm_vxworks_link_hash_table_create elf32_arm_reloc_name_lookup elf32_arm_find_inliner_info arm_elf_find_function elf32_arm_find_nearest_line elf32_arm_is_target_special_symbol elf32_arm_print_private_bfd_data elf32_arm_copy_private_bfd_data elf32_arm_merge_private_bfd_data order_021.15693 v6t2.15654 v6k.15655 v7.15656 v6_m.15657 v6s_m.15658 v7e_m.15659 v4t_plus_v6_m.15660 aeabi_enum_names.15741 elf32_arm_vxworks_bed vfp_versions.15729 name_table.15705 elf32_arm_new_section_hook elf32_arm_mkobject elf32_arm_swap_symbol_out elf32_arm_swap_symbol_in add_unwind_table_edit adjust_exidx_size insert_cantunwind_after __PRETTY_FUNCTION__.13303 __PRETTY_FUNCTION__.12861 __PRETTY_FUNCTION__.12951 elf32_arm_size_dynamic_sections arm_make_glue_section elf32_arm_create_or_find_stub_sec elf32_bed elf32_arm_symbian_bed elf32_arm_stub_long_branch_any_any elf32_arm_stub_long_branch_v4t_arm_thumb elf32_arm_stub_long_branch_thumb_only elf32_arm_stub_long_branch_v4t_thumb_thumb elf32_arm_stub_long_branch_v4t_thumb_arm elf32_arm_stub_short_branch_v4t_thumb_arm elf32_arm_stub_long_branch_any_arm_pic elf32_arm_stub_long_branch_any_thumb_pic elf32_arm_stub_long_branch_v4t_thumb_thumb_pic elf32_arm_stub_long_branch_v4t_arm_thumb_pic elf32_arm_stub_long_branch_v4t_thumb_arm_pic elf32_arm_stub_long_branch_thumb_only_pic elf32_arm_stub_a8_veneer_b_cond elf32_arm_stub_a8_veneer_b elf32_arm_stub_a8_veneer_bl elf32_arm_stub_a8_veneer_blx elf32_arm_symbian_special_sections elf32.c elf_swap_shdr_in elf_swap_shdr_out elf_swap_ehdr_out elf_swap_ehdr_in elf_slurp_reloc_table_from_section __PRETTY_FUNCTION__.10956 __PRETTY_FUNCTION__.11480 elf-vxworks.c elf_vxworks_gott_symbol_p elf.c get_segment_type sym_is_global ignore_section_sym elf_sort_sections vma_page_aligned_bias elf_find_function elfcore_maybe_make_sect elfcore_make_note_pseudosection __PRETTY_FUNCTION__.15895 __PRETTY_FUNCTION__.15734 get_program_header_size __PRETTY_FUNCTION__.13386 make_mapping __PRETTY_FUNCTION__.11394 __PRETTY_FUNCTION__.14522 __PRETTY_FUNCTION__.12887 elf_fake_sections assign_file_positions_except_relocs __PRETTY_FUNCTION__.14119 elfcore_grok_nto_regs elf_parse_notes tid.16674 special_sections debug_sections.11680 special_sections_b special_sections_c special_sections_d special_sections_f special_sections_g special_sections_h special_sections_i special_sections_l special_sections_n special_sections_p special_sections_r special_sections_s special_sections_t special_sections_z elflink.c bfd_elf_link_mark_dynamic_symbol elf_link_renumber_hash_table_dynsyms elf_link_renumber_local_hash_table_dynsyms elf_merge_st_other elf_sort_symbol elf_renumber_gnu_hash_syms elf_sort_elf_symbol elf_link_sort_cmp1 elf_link_sort_cmp2 elf_gc_sweep_symbol elf_gc_propagate_vtable_entries_used elf_gc_allocate_got_offsets section_signature undefined_reference get_dynamic_reloc_section_name complained.18992 elf_sym_name_compare fini_reloc_cookie_rels fini_reloc_cookie fini_reloc_cookie_for_section elf_get_linked_section_vma compare_link_order init_reloc_cookie elf_link_adjust_relocs __PRETTY_FUNCTION__.15968 elf_create_symbuf bfd_elf_match_symbols_in_sections __PRETTY_FUNCTION__.18806 merge_sections_remove_hook _bfd_elf_link_renumber_dynsyms _bfd_elf_link_find_version_dependencies compute_bucket_count elf_buckets _bfd_elf_link_size_reloc_section check_dynsym elf_link_flush_output_syms _bfd_elf_link_sec_merge_syms resolve_section resolve_symbol eval_symbol elf_link_output_sym elf_link_read_relocs_from_section elf_link_check_versioned_symbol __PRETTY_FUNCTION__.16323 elf_link_output_extsym __PRETTY_FUNCTION__.16398 __PRETTY_FUNCTION__.15853 __PRETTY_FUNCTION__.15826 elf_adjust_dynstr_offsets elf_collect_gnu_hash_codes elf_collect_hash_codes __PRETTY_FUNCTION__.14508 _bfd_elf_export_symbol _bfd_elf_link_assign_sym_version _bfd_elf_adjust_dynamic_symbol _bfd_elf_fix_symbol_flags _bfd_elf_link_create_dynstrtab elf_add_dt_needed_tag elf_gc_smash_unused_vtentry_relocs init_reloc_cookie_rels init_reloc_cookie_for_section __PRETTY_FUNCTION__.17206 __PRETTY_FUNCTION__.16811 __PRETTY_FUNCTION__.13009 __PRETTY_FUNCTION__.11352 elf-attrs.c uleb128_size is_default_attr vendor_obj_attr_name write_uleb128 obj_attr_size vendor_obj_attr_size __PRETTY_FUNCTION__.11246 elf_new_obj_attr __PRETTY_FUNCTION__.11296 __PRETTY_FUNCTION__.11205 write_obj_attribute __PRETTY_FUNCTION__.11097 elf-strtab.c strrevcmp elf_strtab_hash_newfunc elf-eh-frame.c skip_leb128 read_uleb128 get_DW_EH_PE_width cie_hash size_of_output_cie_fde skip_cfa_op make_pc_relative vma_compare write_value read_value cie_eq mark_entry __PRETTY_FUNCTION__.12450 dwarf1.c parse_die dwarf1_unit_find_nearest_line elf32-gen.c elf_generic_info_to_howto dummy elf_generic_info_to_howto_rel elf32_generic_link_add_symbols check_for_relocs cpu-arm.c compatible scan processors arm_check_note architectures arch_info_struct stabs.c stab_link_includes_newfunc merge.c strrevcmp_align sec_merge_hash_lookup __PRETTY_FUNCTION__.9066 sec_merge_add __PRETTY_FUNCTION__.8711 sec_merge_hash_newfunc cplus-dem.c cplus_markers consume_count consume_count_with_underscores get_count string_init string_clear remember_Btype operators.3894 special.3931 string_delete forget_types delete_non_B_K_work_stuff squangle_mop_up delete_work_stuff string_need string_prependn string_prepends string_prepend string_appendn string_appends work_stuff_copy_to_from string_append string_append_template_idx snarf_numeric_literal char_str register_Btype remember_Ktype remember_type optable qualifier_string code_for_qualifier demangle_qualifier demangle_function_name do_type demangle_arm_hp_template iterate_demangle_function demangle_signature internal_cplus_demangle gnu_special demangle_template_value_parm demangle_qualified demangle_expression demangle_template demangle_template_template_parm demangle_nested_args demangle_class_name do_arg demangle_args cp-demangle.c d_make_empty d_make_comp d_make_name d_make_builtin_type d_make_sub is_ctor_dtor_or_conversion has_return_type d_number d_call_offset d_cv_qualifiers d_compact_number d_template_param d_discriminator d_add_substitution d_substitution standard_subs d_index_template_argument d_lookup_template_argument d_find_pack d_growable_string_init d_source_name d_unqualified_name d_operator_name d_parmlist d_name d_encoding d_template_args d_class_enum_type d_bare_function_type is_ctor_or_dtor d_expr_primary d_expression d_exprlist d_growable_string_callback_adapter d_print_mod_list d_print_mod d_print_comp d_print_function_type d_print_array_type d_print_expr_op d_print_subexpr d_print_cast d_demangle_callback d_demangle md5.c fillbuf sha1.c argv.c consume_whitespace concat.c filename_cmp.c getruntime.c hashtab.c hash_pointer eq_pointer prime_tab higher_prime_index htab_expand hex.c lbasename.c lrealpath.c make-relative-prefix.c free_split_directories save_string split_directories make_relative_prefix_1 objalloc.c safe-ctype.c unlink-if-ordinary.c xatexit.c xatexit_cleanup xatexit_head xatexit_first xexit.c xmalloc.c name first_break xstrdup.c xstrerror.c xstrerror_buf __preinit_array_start __fini_array_end _GLOBAL_OFFSET_TABLE_ __preinit_array_end __fini_array_start __init_array_end __init_array_start _DYNAMIC fileno@@GLIBC_2.0 bfd_set_section_size bfd_zalloc pop_stat_ptr _bfd_stringtab_init data_start fputs@@GLIBC_2.0 abort@@GLIBC_2.0 __errno_location@@GLIBC_2.0 _bfd_dwarf2_cleanup_debug_info lang_enter_overlay_section exp_assert bfd_symbol_info bfd_make_section_old_way bfd_section_from_elf_index bfd_preserve_finish _bfd_elf_get_special_section _bfd_generic_get_section_contents bfd_elf_discard_info lang_add_insert _bfd_elf_find_line lang_has_input_file coff_write_symbols _bfd_elf_link_hash_table_init lang_output_section_statement bfd_arch_get_compatible bfd_check_overflow sprintf@@GLIBC_2.0 _bfd_dwarf2_find_inliner_info expld ldemul_default_target bfd_check_format bfd_section_already_linked_table_init ldfile_try_open_bfd _bfd_elf_gc_mark_reloc _objalloc_alloc bfd_sprintf_vma writeargv cplus_demangle_v3 __umoddi3 _bfd_write_section_stabs concat_copy _bfd_elf_make_empty_symbol ldemul_find_potential_libraries _bfd_elf_set_arch_mach inflateReset bfd_get_error strerror@@GLIBC_2.0 bfd_elf32_little_generic_vec _bfd_dwarf1_find_nearest_line mri_draw_tree htab_eq_pointer _bfd_elf_swap_vernaux_in ldctor_build_sets bfd_set_error ldemul_set_output_arch _bfd_elf_canonicalize_dynamic_symtab _bfd_elf_match_sections_by_type hll_default lex_push_file _bfd_target_vector_entries coff_section_from_bfd_index __libc_csu_fini add_DT_NEEDED_for_dynamic cplus_demangle_name_to_style ldlex_expression _bfd_elf_get_synthetic_symtab _bfd_elf_large_com_section _bfd_elf_end_eh_frame_parsing qsort@@GLIBC_2.0 _bfd_elf32_size_info warn_deprecated cplus_demangle_opname bfd_assert bfd_elf32_arm_set_byteswap_code lex_string lang_startup _bfd_elf_default_relocs_compatible _start bfd_realloc mri_name bfd_elf_add_obj_attr_int sha1_buffer lang_new_phdr cplus_demangle_init_info bfd_elf32_swap_symbol_in after_parse_default bfd_reloc_name_lookup bsearch@@GLIBC_2.0 _bfd_elf_compute_section_file_positions inflateEnd bfd_hash_replace bfd_generic_stat_arch_elt _bfd_elf32_bfd_from_remote_memory bfd_getl_signed_32 open64@@GLIBC_2.1 set_cplus_marker_for_demangling bfd_get_section_contents bfd_elf_size_dynsym_hash_dynstr elf_vxworks_add_symbol_hook bfd_arm_merge_machines bfd_getb_signed_64 lbasename elf_vxworks_finish_dynamic_entry java_demangle_v3_callback coff_get_reloc_upper_bound ihex_vec elfcore_write_s390_prefix compress sha1_process_block plugin_error_plugin bfd_abs_section xstrerror bfd_malloc2 yy_delete_buffer _bfd_elf_adjust_dynamic_copy _bfd_elf_strtab_delref lang_init _bfd_elf_link_hash_fixup_symbol dprint_statement ldgram_vers_current_lang make_relative_prefix_ignore_links plugin_opt_plugin bfd_get_section_by_name entry_from_cmdline bfd_getl_signed_16 _bfd_elf_init_private_section_data _bfd_generic_get_elt_at_index bfd_link_hash_lookup bfd_get_sign_extend_vma __gmon_start__ _bfd_elf_write_object_contents _Jv_RegisterClasses bfd_decode_symclass _bfd_link_section_stabs bfd_link_hash_traverse ld_sysroot elf32_arm_next_input_section bfd_elf_gc_mark_dynamic_ref_symbol _fp_hw bfd_elf_set_dyn_lib_class realloc@@GLIBC_2.0 _bfd_elf_check_kept_section ldemul_new_vers_pattern _bfd_elf_slurp_version_tables _bfd_free_cached_info plugin_opt_plugin_arg bfd_use_reserved_id read_unsigned_leb128 rewind@@GLIBC_2.0 _bfd_set_gp_value __xstat64@@GLIBC_2.2 _bfd_elf_reloc_type_class bfd_elf32_core_file_p ldlex_popstate bfd_get_reloc_code_name exp_get_fill _bfd_n1 bfd_target_vector bfd_init __moddi3 ld_emulations cplus_mangle_opname coff_find_nearest_line bfd_errmsgs lang_append_dynamic_list_cpp_typeinfo bfd_putb16 bfd_getb_signed_16 after_allocation_default _bfd_generic_verify_endian_match coff_get_symtab_upper_bound bfd_section_hash_newfunc add_ysym bfd_slurp_bsd_armap_f2 bfd_sym_from_r_symndx _bfd_elf_write_corefile_contents bfd_getb64 strchr@@GLIBC_2.0 lex_redirect bfd_0 getenv@@GLIBC_2.0 bfd_elf32_swap_reloc_out _fini bfd_elf32_arm_set_vfp11_fix calloc@@GLIBC_2.0 _bfd_dwarf2_find_nearest_line strncpy@@GLIBC_2.0 yypop_buffer_state bfd_log2 push_stat_ptr yyget_out putchar@@GLIBC_2.0 bfd_elf32_object_p sha1_finish_ctx lang_statement_append _bfd_coff_get_external_symbols bfd_elf_is_group_section bfd_map_over_sections elfcore_write_prxfpreg ldfile_input_filename yyset_debug lang_ld_feature ldemul_choose_mode bfd_is_undefined_symclass mri_format bfd_openr _bfd_elf_get_symbol_info coff_sizeof_headers _bfd_elf_strtab_finalize bfd_getb16 lang_add_map bfd_cache_close plugin_load_plugins exp_assign yydebug _bfd_elf_link_hash_hide_symbol iterative_hash dlclose@@GLIBC_2.0 bfd_elf32_arm_vfp11_fix_veneer_locations bfd_elf_print_symbol bsd_write_armap real_fopen yyset_lineno fgets@@GLIBC_2.0 bfd_elf32_swap_phdr_out lang_add_section mri_order lang_add_output_format memset@@GLIBC_2.0 _bfd_elf_copy_private_symbol_data fopen64@@GLIBC_2.1 bfd_elf32_bigarm_vxworks_vec ldemul_set_symbols _sch_istable _bfd_link_hash_table_init htab_clear_slot __strtol_internal@@GLIBC_2.0 _bfd_norelocs_canonicalize_reloc bfd_true _bfd_stringtab_free _bfd_elf_section_from_bfd_section lang_final yyout lang_for_each_statement_worker htab_create_typed_alloc sha1_init_ctx _bfd_nocore_core_file_pid ldlex_defsym lang_register_vers_node cplus_demangle_mangled_name mri_only_load bfd_elf32_arm_vfp11_erratum_scan _bfd_generic_set_section_contents bfd_link_add_undef exp_bigintop bfd_nullvoidptr add_keepsyms_file ldemul_finish __libc_start_main@@GLIBC_2.0 bfd_write_bigendian_4byte_int undef_from_cmdline lang_relax_sections _bfd_elf_strtab_free bfd_get_target_info htab_remove_elt _bfd_archive_coff_construct_extended_name_table _IO_getc@@GLIBC_2.0 ldfile_assumed_script _bfd_elf_discard_section_eh_frame_hdr _obstack_begin@@GLIBC_2.0 _exit@@GLIBC_2.0 bfd_set_section_contents make_relative_prefix cplus_demangle coff_mangle_symbols bfd_set_archive_head cplus_demangle_operators exp_defsym md5_stream _bfd_fix_excluded_sec_syms lang_float_flag lang_reset_memory_regions strrchr@@GLIBC_2.0 _bfd_elf_encode_eh_address lang_size_sections bfd_flush add_cref _bfd_elf_obj_attrs_arg_type _bfd_stab_section_offset abs_output_section Chunk bfd_elf32_swap_phdr_in bfd_set_symtab bfd_elf_gc_common_final_link lang_set_flags _bfd_stringtab_emit ldemul_hll fseeko64@@GLIBC_2.1 _bfd_generic_new_section_hook _bfd_elf_canonicalize_reloc mri_truncate _bfd_compute_and_write_armap yyleng mri_public chmod@@GLIBC_2.0 bfd_generic_merge_sections bfd_elf32_bigarm_vec lang_add_vers_depend bfd_section_list_clear bfd_false bindtextdomain@@GLIBC_2.0 _bfd_elfcore_make_pseudosection bfd_elf32_arm_process_before_allocation objalloc_free_block bfd_generic_relax_section parser_input bfd_elf32_core_file_failing_signal bfd_hash_set_default_size bfd_elf32_swap_reloca_in bfd_create_gnu_debuglink_section bfd_reloc_type_lookup _bfd_elf_swap_verdaux_out bfd_set_start_address getopt_long_only@@GLIBC_2.0 _bfd_nocore_core_file_failing_command bfd_hash_lookup ldgram_had_keep read@@GLIBC_2.0 bfd_elf_set_obj_attr_contents bfd_generic_define_common_symbol _bfd_archive_bsd44_construct_extended_name_table _bfd_delete_bfd _bfd_link_hash_newfunc bfd_is_local_label yyget_leng _bfd_merged_section_offset _bfd_elf_strtab_clear_all_refs _bfd_elf_strtab_emit _sch_tolower objalloc_create _bfd_elf_swap_verneed_in bfd_printable_arch_mach coff_make_empty_symbol bfd_alloc2 getrusage@@GLIBC_2.0 _bfd_elf_merge_object_attributes ldemul_choose_target lang_leave_group bfd_elf_string_from_elf_section lineno bfd_coff_get_comdat_section _bfd_default_error_handler version_printed _bfd_elf_define_linkage_sym _bfd_generic_link_add_one_symbol command_line bfd_getl16 bfd_get_elf_phdrs search_head lang_default_entry xatexit _bfd_elf_canonicalize_dynamic_reloc bfd_check_format_matches _IO_stdin_used bfd_make_section_anyway_with_flags lang_abs_symbol_at_beginning_of inflate _bfd_archive_bsd_update_armap_timestamp _bfd_generic_make_empty_symbol fdopen@@GLIBC_2.1 lang_enter_group bfd_get_mtime get_run_time bfd_hash_allocate bfd_elf32_big_generic_vec free@@GLIBC_2.0 bfd_get_relocated_section_contents exp_get_abs_int optind@@GLIBC_2.0 lang_map __lxstat64@@GLIBC_2.2 stat_ptr _obstack_newchunk@@GLIBC_2.0 bfd_realloc_or_free md5_init_ctx _bfd_stringtab_size _bfd_elf_strtab_add bfd_elf32_swap_symbol_out whole_archive lang_add_data bfd_hash_table_init lang_leave_output_section_statement bfd_elf_get_dyn_lib_class dcgettext@@GLIBC_2.0 bfd_bread lang_for_each_input_file bfd_close_all_done access@@GLIBC_2.0 yytext _bfd_elf_link_read_relocs _bfd_coff_free_symbols __data_start lang_add_wild missing_file bfd_elf32_swap_reloca_out cplus_demangle_builtin_types bfd_elf_perform_complex_relocation is_gnu_v3_mangled_ctor dlsym@@GLIBC_2.0 exp_intop bfd_zmalloc yyrestart ldemul_unrecognized_file htab_elements htab_delete lang_add_unique bfd_cache_init bfd_record_phdr sbrk@@GLIBC_2.0 bfd_fopen bfd_elf32_core_file_pid _bfd_elf_assign_file_position_for_section _bfd_add_bfd_to_archive_cache bfd_elf_get_elf_syms exp_fold_tree fflush@@GLIBC_2.0 _bfd_elf_strtab_offset ld_canon_sysroot_len cplus_demangle_v3_callback symbolsrec_vec yyget_text bfd_printable_name _bfd_elf_init_reloc_shdr _bfd_elf_rel_vtable_reloc_fn getopt_long@@GLIBC_2.0 yyfree bfd_elf_get_runpath_list elf_vxworks_create_dynamic_sections _bfd_elf_fixup_group_sections fseek@@GLIBC_2.0 _bfd_elf_relocs_compatible bfd_elf32_littlearm_symbian_vec _bfd_elf_swap_versym_in bfd_get_bits _bfd_elf_write_section_eh_frame_hdr lang_list_init _bfd_elf_get_dynamic_symtab_upper_bound _bfd_elf_no_info_to_howto isatty@@GLIBC_2.0 lang_add_output realpath@@GLIBC_2.3 srec_vec yychar bfd_canonicalize_reloc bfd_release ldversion lang_statement_iteration bfd_preserve_restore umask@@GLIBC_2.0 bfd_coff_get_syment ldwrite bfd_com_section yy_scan_bytes _bfd_write_merged_section fclose@@GLIBC_2.1 segments exp_print_tree bfd_scan_arch bfd_section_from_phdr lang_append_dynamic_list entry_section ftello64@@GLIBC_2.1 _bfd_elf_make_dynamic_segment coff_renumber_symbols bfd_target_list _bfd_new_bfd syslib_default bfd_octets_per_byte lang_for_each_statement _bfd_elf_make_section_from_phdr _bfd_generic_minisymbol_to_symbol lrealpath _bfd_abort ldemul_after_allocation md5_process_block bfd_coff_set_symbol_class _bfd_elf_archive_symbol_lookup lang_track_definedness sha1_stream lang_memory_region_lookup lang_add_input_file real_fseek _bfd_elf_size_group_sections bfd_default_compatible _bfd_elf_strtab_addref saved_script_handle bfd_elf_get_needed_list htab_empty sort_section elfcore_write_xstatereg yy_flush_buffer exp_unop _bfd_elf_hash_symbol bfd_realloc2 bfd_bsd_truncate_arname _bfd_relocate_contents ldfile_open_default_command_file _bfd_ar_spacepad bfd_generic_gc_sections bfd_dont_truncate_arname elfcore_write_s390_ctrs bfd_alt_mach_code ld_armelfb_linux_eabi_emulation bfd_set_file_flags bfd_openr_next_archived_file _xexit_cleanup bfd_elf32_arm_set_cortex_a8_fix htab_hash_pointer stderr@@GLIBC_2.0 bfd_elf_section_type_names default_target memcpy@@GLIBC_2.0 bfd_cache_close_all bfd_openw _bfd_elf_rel_local_sym yyset_in cplus_demangle_fill_extended_operator force_make_executable bfd_elf_make_object _bfd_count_link_order_relocs bfd_create strlen@@GLIBC_2.0 bfd_generic_archive_p entry_symbol bfd_section_already_linked_table_free _bfd_elf_link_hash_table_create _bfd_generic_link_output_symbols bfd_perror bfd_set_arch_info _bfd_dummy_target lang_add_target _bfd_construct_extended_name_table bfd_elf_link_add_symbols bfd_elf_get_dt_soname bfd_link_repair_undef_list bfd_errmsg ld_abort lang_enter_output_section_statement strip_excluded_output_sections bfd_rename_section yy_scan_buffer _bfd_elf_default_got_elt_size lang_get_output_target _bfd_elf_merge_unknown_attribute_list concat_length _bfd_generic_link_hash_table_create exp_binop bfd_init_section_decompress_status _bfd_elf_gc_mark_rsec unlink@@GLIBC_2.0 vfinfo read_signed_leb128 yypush_buffer_state g_switch_value stat_alloc minfo mri_alignmod _bfd_look_for_bfd_in_cache bfd_set_error_program_name bfd_close _bfd_merge_sections bfd_stat yyget_in ldlang_override_segment_assignment bfd_get_mach lang_abs_symbol_at_end_of exp_trinop _bfd_generic_link_hash_newfunc add_wrap bfd_elf32_core_file_matches_executable_p ldemul_before_parse asprintf@@GLIBC_2.0 bfd_perform_relocation _bfd_elf_sizeof_headers ldlex_version_file md5_read_ctx bfd_generic_link_read_symbols __dso_handle _bfd_elf_find_segment_containing_section _bfd_elf_strtab_init _bfd_elf_init_1_index_section coff_bfd_make_debug_symbol load_symbols coff_symbol_from sha1_process_bytes feof@@GLIBC_2.0 strcpy@@GLIBC_2.0 lang_for_each_file output_target bfd_get_error_handler dlopen@@GLIBC_2.1 ftell@@GLIBC_2.0 bfd_slurp_armap __DTOR_END__ exp_provide bfd_elf_get_default_section_type _bfd_elf_canonicalize_symtab bfd_getb_signed_32 __libc_csu_init is_gnu_v3_mangled_dtor _bfd_new_bfd_contained_in printf@@GLIBC_2.0 bfd_demangle binary_vec cplus_demangle_type bfd_hash_table_free previous_script_handle htab_try_create lang_update_definedness coff_canonicalize_symtab elf32_arm_setup_section_lists bfd_elf32_arm_add_glue_sections_to_bfd _bfd_elf_swap_verdef_out elfcore_write_ppc_vsx yylex_destroy demangling bfd_und_section bfd_elf_reloc_symbol_deleted_p constructor_list _bfd_elf_link_just_syms getuid@@GLIBC_2.0 bfd_elf32_swap_dyn_in _bfd_elf_section_already_linked environ@@GLIBC_2.0 _bfd_generic_mkarchive bfd_elf32_checksum_contents bfd_getl_signed_64 _bfd_elf_get_dynamic_reloc_section bfd_hash_table_init_n _bfd_generic_find_line _bfd_elf_set_osabi _bfd_elf_can_make_relative exp_get_value_int _bfd_coff_is_local_label_name _bfd_elf_link_output_relocs bfd_hash_rename coff_object_p _bfd_elf_swap_verneed_out ldemul_parse_args bfd_default_arch_struct bfd_make_writable bfd_openr_iovec next_matching_output_section_statement coff_count_linenumbers ldfile_add_arch _bfd_elf_gc_keep bfd_wrapped_link_hash_lookup _bfd_generic_section_already_linked output_filename bfd_get_elf_phdr_upper_bound bfd_section_already_linked_table_insert htab_collisions ldemul_add_options elfcore_write_register_note _bfd_memory_iovec _bfd_elf_print_private_bfd_data strcasecmp@@GLIBC_2.0 bfd_putb64 plugin_get_ir_dummy_bfd bfd_arm_update_notes set_output_arch_default overflow_cutoff_limit elf32_arm_size_info lang_add_reloc bfd_elf32_littlearm_vxworks_vec ldlex_both S3Forced bfd_associated_vector bfd_elf32_write_out_phdrs _bfd_generic_init_private_section_data htab_create_alloc_ex bfd_get_gp_size bfd_arm_arch yy_create_buffer ldemul_recognized_file delete_output_file_on_failure ldlang_add_file bfd_compress_section_contents _bfd_elf_common_section bfd_bwrite _bfd_elf_stringtab_init bfd_elf32_arm_init_maps _bfd_elf_default_action_discarded bfd_get_next_mapent _bfd_xcoff_stringtab_init _bfd_generic_link_write_global_symbol add_excluded_libs coff_get_normalized_symtab bfd_find_version_for_sym mri_align close@@GLIBC_2.0 ldfile_output_architecture _bfd_elf_swap_verdef_in output_cref fwrite@@GLIBC_2.0 libiberty_concat_ptr no_more_claiming _bfd_generic_copy_link_hash_symbol_type freeargv _bfd_elf_new_section_hook lang_insert_orphan lang_add_fill bfd_get_arch_size base bfd_set_default_target lang_add_nocrossref _bfd_elf_get_reloc_upper_bound fprintf@@GLIBC_2.0 bfd_get_arch_info strstr@@GLIBC_2.0 bfd_get_size time@@GLIBC_2.0 _bfd_elf_common_section_index globfree64@@GLIBC_2.1 plugin_call_cleanup unlink_if_ordinary cplus_demangle_fill_name bfd_follow_gnu_debuglink strncat@@GLIBC_2.0 coff_find_inliner_info bfd_elf32_swap_reloc_in _bfd_elf_strtab_size bfd_elf_get_obj_attr_int lfinfo _bfd_elf_common_definition exp_relop ldfile_open_file bfd_install_relocation sha1_read_ctx _bfd_elf_eh_frame_address_size bfd_ind_section plugin_call_all_symbols_read _bfd_elf_section_offset cplus_demangle_set_style __bss_start _bfd_elf_gc_mark_fdes _bfd_stringtab_add _bfd_elf_make_dynamic_reloc_section _bfd_elf_copy_obj_attributes malloc@@GLIBC_2.0 bfd_emul_set_commonpagesize yyget_lineno lang_output_section_find_by_flags lang_leave_overlay lang_output_section_statement_lookup ldemul_get_script bfd_getl32 _bfd_elf_create_got_section bfd_elf_obj_attr_size yyget_debug before_allocation_default bfd_get_full_section_contents yyerror yyin _bfd_elf_setup_sections _bfd_elf_assign_file_positions_for_relocs bfd_make_section bfd_make_section_with_flags cplus_demangle_fill_ctor _bfd_elf_is_local_label_name _bfd_elf_find_inliner_info bfd_default_reloc_type_lookup ldfile_output_machine bfd_simple_get_relocated_section_contents bfd_elf32_bigarm_symbian_vec bfd_get_reloc_size lang_phdr_list lang_new_vers_pattern htab_find bfd_putl32 _bfd_nocore_core_file_matches_executable_p constructors_sorted lang_finish _bfd_elf_parse_eh_frame _bfd_create_empty_archive_element_shell finish_default bfd_print_symbol_vandf ldemul_before_allocation _bfd_discard_section_stabs coff_write_armap einfo bfd_elf32_swap_dyn_out ada_demangle htab_traverse_noresize fputc@@GLIBC_2.0 print_nl htab_find_with_hash after_open_default sets bfd_new_link_order lang_section_start bfd_default_set_arch_mach bfd_init_section_compress_status htab_remove_elt_with_hash yyalloc _bfd_elf_rela_local_sym bfd_malloc elf32_arm_fix_exidx_coverage dos_lbasename ld_armelf_linux_eabi_emulation bfd_coff_get_auxent buildargv _bfd_elf_single_rel_hdr _bfd_generic_read_minisymbols bfd_open_file _bfd_elf_symbol_refs_local_p obstack_free@@GLIBC_2.0 parsing_defsym bfd_alloc bfd_elf_set_group_contents _hex_value stdin@@GLIBC_2.0 _bfd_elf_make_section_from_shdr unix_lbasename _bfd_elf_get_lineno bfd_0l bfd_arch_bits_per_byte bfd_tell bfd_elf_bfd_from_remote_memory elf32_arm_build_stubs real_ftell _bfd_elf_copy_link_hash_symbol_type bfd_set_reloc lang_memory_region_alias ldemul_handle_option ldemul_after_open bfd_put_bits compressBound _bfd_add_merge_section bfd_sections_find_if bfd_elf_mkcorefile yyrealloc _bfd_generic_link_split_section _bfd_elf_dynamic_symbol_p inflateInit_ lang_add_assignment ldemul_open_dynamic_archive bfd_section_already_linked_table_lookup mri_output_section bfd_make_section_anyway xmalloc_set_program_name one_lang_size_sections_pass bfd_scan_vma _bfd_elf_merge_sections ldctor_add_set_entry strncasecmp@@GLIBC_2.0 bfd_elf_link_record_local_dynamic_symbol _bfd_generic_write_ar_hdr lang_do_assignments memmove@@GLIBC_2.0 parse_args elf_vxworks_link_output_symbol_hook mri_base ldlex_mri_script tekhex_vec bfd_elf_size_dynamic_sections input_file_chain bfd_putb32 _bfd_elf_begin_eh_frame_parsing _bfd_coff_read_internal_relocs _bfd_error_handler _bfd_norelocs_get_reloc_upper_bound _bfd_get_elt_at_filepos bfd_fdopenr bfd_elf_link_record_dynamic_symbol _bfd_elf_close_and_cleanup reconcat coff_print_symbol ldemul_place_orphan strcat@@GLIBC_2.0 bfd_generic_openr_next_archived_file _bfd_dwarf2_find_line bfd_format_string file_chain _bfd_generic_read_ar_hdr _bfd_elf_add_dynamic_entry concat htab_size ldemul_list_emulations bfd_default_scan htab_create _bfd_coff_read_string_table report_plugin_symbols _end stdout@@GLIBC_2.0 bfd_arch_list __rawmemchr@@GLIBC_2.1 bfd_hash_insert bfd_elf_record_link_assignment yywrap _bfd_elf_link_hash_copy_indirect bfd_generic_is_group_section _bfd_generic_reloc_link_order cplus_demangle_print puts@@GLIBC_2.0 ldemul_after_parse __strtoul_internal@@GLIBC_2.0 bfd_set_format _bfd_elf_link_omit_section_dynsym _bfd_elf_merge_symbol bfd_elf_gc_record_vtentry bfd_elf32_arm_allocate_interworking_sections trace_files _bfd_elf_write_section_eh_frame ldfile_open_command_file textdomain@@GLIBC_2.0 __fxstat64@@GLIBC_2.2 bfd_putl64 xmalloc xstrdup _bfd_elf_map_sections_to_segments bfd_elf32_slurp_reloc_table elfcore_write_prfpreg verilog_vec md5_buffer bfd_elf_hash java_demangle_v3 bfd_elf32_write_shdrs_and_ehdr bfd_arch_mach_octets_per_byte _bfd_generic_link_add_archive_symbols md5_finish_ctx _bfd_elf_link_lookup_local_dynindx add_DT_NEEDED_for_regular lang_process _bfd_bsd44_write_ar_hdr _bfd_elf_discard_section_eh_frame bfd_elf_generic_reloc bfd_getb32 libiberty_demanglers _bfd_elf_swap_versym_out fcntl@@GLIBC_2.0 lang_leave_overlay_section ld_canon_sysroot elfcore_write_s390_todpreg ldlang_add_undef _bfd_generic_final_link bfd_is_section_compressed bfd_hash_newfunc yyset_out plugin_active_plugins_p ldfile_open_file_search bfd_elf32_slurp_symbol_table _bfd_clear_contents _bfd_write_stab_strings elfcore_write_ppc_vmx sscanf@@GLIBC_2.0 htab_find_slot_with_hash yylval ldemul_create_output_section_statements coff_get_symbol_info lang_enter_overlay _bfd_elfcore_strndup bfd_lookup_arch bfd_emul_get_maxpagesize bfd_preserve_save bfd_elf_final_link yylineno opterr@@GLIBC_2.0 bfd_zalloc2 _bfd_elf_find_nearest_line bfd_get_arch _bfd_elf_is_function_type __environ@@GLIBC_2.0 memchr@@GLIBC_2.0 fnmatch@@GLIBC_2.2.3 strncmp@@GLIBC_2.0 bfd_elf_gnu_hash bfd_get_reloc_upper_bound ldemul_list_emulation_options bfd_default_vector vfprintf@@GLIBC_2.0 _bfd_elf_get_dynamic_reloc_upper_bound htab_create_alloc elfcore_write_note elf_vxworks_final_write_processing bfd_seek yy_flex_debug _bfd_generic_read_ar_hdr_mag xmalloc_failed _IO_putc@@GLIBC_2.0 handle_asneeded_cref exp_get_vma bfd_generic_get_relocated_section_contents coff_write_linenumbers dupargv strpbrk@@GLIBC_2.0 exp_nameop bfd_calc_gnu_debuglink_crc32 lang_new_vers_node _bfd_final_link_relocate bfd_get_unique_section_name optarg@@GLIBC_2.0 mri_alias lang_add_attribute _bfd_default_link_order check_nocrossrefs coff_get_lineno _bfd_elf_gc_mark _bfd_elf_get_sec_type_attr yynerrs dwarf_debug_sections print_space bfd_putl16 yylex cplus_demangle_fill_dtor filename_cmp lang_symbol_definition_iteration _bfd_elf_copy_private_section_data md5_process_bytes fread@@GLIBC_2.0 ldfile_output_machine_name bfd_make_readable ldemul_syslib exp_fold_tree_no_dot _bfd_elf_swap_vernaux_out xcalloc bfd_0u _bfd_generic_link_add_symbols bfd_section_from_shdr yyparse htab_hash_string _bfd_elf_swap_verdaux_in _bfd_elf_attr_strdup bfd_set_error_handler _sch_toupper _bfd_elf_get_symtab_upper_bound elf_vxworks_add_dynamic_entries bfd_malloc_and_get_section _edata bfd_elf_sym_name snprintf@@GLIBC_2.0 _bfd_get_gp_value mmap64@@GLIBC_2.1 bfd_hash_traverse cplus_demangle_print_callback bfd_elf_gc_sections bfd_zmalloc2 trace_file_tries bfd_emul_set_maxpagesize elfcore_write_s390_todcmp _bfd_generic_link_hash_table_free _bfd_elf_maybe_strip_eh_frame_hdr strcspn@@GLIBC_2.0 hex_init lang_append_dynamic_list_cpp_new elfcore_write_s390_timer _bfd_generic_link_add_symbols_collect elf_vxworks_emit_relocs ldfile_add_library_path link_info bfd_elf_add_obj_attr_string ldlex_script objalloc_free bfd_generic_discard_group bfd_set_section_flags concat_copy2 nocrossref_list glob64@@GLIBC_2.2 xrealloc xexit _bfd_elf_init_2_index_sections _bfd_nocore_core_file_failing_signal ldfile_set_output_arch _bfd_elf_validate_reloc _bfd_elf_link_create_dynamic_sections bfd_elf32_littlearm_vec ferror@@GLIBC_2.0 bfd_generic_is_local_label_name bfd_fprintf_vma _bfd_coff_internal_syment_name lseek64@@GLIBC_2.1 bfd_elf_gc_common_finalize_got_offsets htab_set_functions_ex info_msg strcmp@@GLIBC_2.0 _bfd_elf_parse_attributes _bfd_elf_link_hash_newfunc _bfd_elf_copy_private_bfd_data bfd_search_for_target yy_scan_string bfd_mmap _bfd_elf_copy_private_header_data _bfd_elf_symbol_from_bfd_symbol bfd_void info_assert __strdup@@GLIBC_2.0 bfd_elf_allocate_object exit@@GLIBC_2.0 lang_elf_version_info bfd_set_gp_size bfd_elf_gc_record_vtinherit mri_load bfd_elf32_arm_set_target_relocs yy_switch_to_buffer _bfd_elf_set_section_contents bfd_openstreamr _bfd_generic_link_just_syms _bfd_elf_eh_frame_section_offset config program_name ldlex_version_script _bfd_stab_section_find_nearest_line _bfd_append_relative_path bfd_elf32_arm_get_bfd_for_interworking bfd_arch_bits_per_address bfd_elf_add_obj_attr_int_string bfd_find_target bfd_elf_get_bfd_needed_list _bfd_archive_bsd_construct_extended_name_table _bfd_elf_merge_unknown_attribute_low _bfd_elf_gc_mark_hook _bfd_elf_tls_setup _bfd_write_archive_contents expandargv bfd_elf_set_dt_needed_name plugin_maybe_claim bfd_elf32_write_relocs __i686.get_pc_thunk.bx bfd_fill_in_gnu_debuglink_section bfd_section_already_linked_table_traverse elf32_arm_size_stubs getgid@@GLIBC_2.0 lang_float lang_add_entry main bfd_arm_get_mach_from_notes _init htab_find_slot bfd_is_arm_special_symbol_name _bfd_generic_get_section_contents_in_window bfd_gnu_truncate_arname _bfd_elf_create_dynamic_sections _bfd_slurp_extended_name_table current_demangling_style bfd_getl64 bfd_emul_get_commonpagesize bfd_get_section_by_name_if htab_traverse had_output_filename bfd_elf32_core_file_failing_command