475 return arch_info; 476 } 477 478 static const char* native_arch_name() { 479 const char* res = NULL; 480 #ifdef LIBARCH_i386 481 res = "i386"; 482 #endif 483 #ifdef LIBARCH_amd64 484 res = "i386:x86-64"; 485 #endif 486 #ifdef LIBARCH_sparc 487 res = "sparc:v8plusb"; 488 #endif 489 #ifdef LIBARCH_sparcv9 490 res = "sparc:v9b"; 491 #endif 492 #if defined(LIBARCH_ppc64) || defined(LIBARCH_ppc64le) 493 res = "powerpc:common64"; 494 #endif 495 if (res == NULL) 496 res = "architecture not set in Makefile!"; 497 return res; 498 } 499 500 static enum bfd_endian native_endian() { 501 int32_t endian_test = 'x'; 502 if (*(const char*) &endian_test == 'x') 503 return BFD_ENDIAN_LITTLE; 504 else 505 return BFD_ENDIAN_BIG; 506 } 507 508 static bfd* get_native_bfd(const bfd_arch_info_type* arch_info, 509 bfd* empty_bfd, bfd_target* empty_xvec) { 510 memset(empty_bfd, 0, sizeof(*empty_bfd)); 511 memset(empty_xvec, 0, sizeof(*empty_xvec)); 512 empty_xvec->flavour = bfd_target_unknown_flavour; 513 empty_xvec->byteorder = native_endian(); 514 empty_bfd->xvec = empty_xvec; | 475 return arch_info; 476 } 477 478 static const char* native_arch_name() { 479 const char* res = NULL; 480 #ifdef LIBARCH_i386 481 res = "i386"; 482 #endif 483 #ifdef LIBARCH_amd64 484 res = "i386:x86-64"; 485 #endif 486 #ifdef LIBARCH_sparc 487 res = "sparc:v8plusb"; 488 #endif 489 #ifdef LIBARCH_sparcv9 490 res = "sparc:v9b"; 491 #endif 492 #if defined(LIBARCH_ppc64) || defined(LIBARCH_ppc64le) 493 res = "powerpc:common64"; 494 #endif 495 #ifdef LIBARCH_aarch64 496 res = "aarch64"; 497 #endif 498 if (res == NULL) 499 res = "architecture not set in Makefile!"; 500 return res; 501 } 502 503 static enum bfd_endian native_endian() { 504 int32_t endian_test = 'x'; 505 if (*(const char*) &endian_test == 'x') 506 return BFD_ENDIAN_LITTLE; 507 else 508 return BFD_ENDIAN_BIG; 509 } 510 511 static bfd* get_native_bfd(const bfd_arch_info_type* arch_info, 512 bfd* empty_bfd, bfd_target* empty_xvec) { 513 memset(empty_bfd, 0, sizeof(*empty_bfd)); 514 memset(empty_xvec, 0, sizeof(*empty_xvec)); 515 empty_xvec->flavour = bfd_target_unknown_flavour; 516 empty_xvec->byteorder = native_endian(); 517 empty_bfd->xvec = empty_xvec; |