| /** |
| * @file bfddefines.c |
| * Write out defines for BFD arch and mach of the given binary |
| * |
| * @remark Copyright 2007 OProfile authors |
| * @remark Read the file COPYING |
| * |
| * @author Jens Wilke |
| * |
| * Copyright IBM Corporation 2007 |
| * |
| */ |
| |
| #include <stdio.h> |
| #include <bfd.h> |
| |
| int main(int argc, char ** args) |
| { |
| bfd * bfd; |
| bfd_boolean r; |
| |
| bfd_init(); |
| bfd = bfd_openr(args[1], NULL); |
| if (bfd == NULL) { |
| bfd_perror("bfd_open"); |
| return 1; |
| } |
| r = bfd_check_format(bfd, bfd_object); |
| if (!r) { |
| bfd_perror("bfd_get_arch"); |
| return 1; |
| } |
| printf("/* automatically generated by bfddefines, do not edit*/\n"); |
| printf("#define BFD_TARGET_NAME \"%s\"\n", bfd->xvec->name); |
| printf("#define BFD_ARCH %i\n", bfd_get_arch(bfd)); |
| printf("#define BFD_MACH %lu\n", bfd_get_mach(bfd)); |
| printf("#define BFD_PRINTABLE_NAME \"%s\"\n", bfd_printable_name(bfd)); |
| |
| return 0; |
| } |