17a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown/** 27a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * @file bfddefines.c 37a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * Write out defines for BFD arch and mach of the given binary 47a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * 57a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * @remark Copyright 2007 OProfile authors 67a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * @remark Read the file COPYING 77a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * 87a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * @author Jens Wilke 97a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * 107a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * Copyright IBM Corporation 2007 117a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown * 127a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown */ 137a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown 147a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown#include <stdio.h> 157a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown#include <bfd.h> 167a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown 177a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brownint main(int argc, char ** args) 187a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown{ 197a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown bfd * bfd; 207a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown bfd_boolean r; 217a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown 227a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown bfd_init(); 237a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown bfd = bfd_openr(args[1], NULL); 247a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown if (bfd == NULL) { 257a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown bfd_perror("bfd_open"); 267a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown return 1; 277a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown } 287a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown r = bfd_check_format(bfd, bfd_object); 297a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown if (!r) { 307a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown bfd_perror("bfd_get_arch"); 317a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown return 1; 327a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown } 337a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown printf("/* automatically generated by bfddefines, do not edit*/\n"); 347a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown printf("#define BFD_TARGET_NAME \"%s\"\n", bfd->xvec->name); 357a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown printf("#define BFD_ARCH %i\n", bfd_get_arch(bfd)); 367a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown printf("#define BFD_MACH %lu\n", bfd_get_mach(bfd)); 377a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown printf("#define BFD_PRINTABLE_NAME \"%s\"\n", bfd_printable_name(bfd)); 387a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown 397a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown return 0; 407a33c86eb98056ef0570c99e713214f8dc56b6efJeff Brown} 41