confusion about relocation (ARM)

Matthias Kaehlcke matthias at kaehlcke.net
Mon Jan 4 16:10:37 EST 2010


El Mon, Jan 04, 2010 at 09:13:11PM +0100 Robert Schwebel ha dit:

> On Mon, Jan 04, 2010 at 08:21:53PM +0100, Matthias Kaehlcke wrote:
> > after getting compiler errors when using a config file created from
> > scratch,
> 
> Can you reproduce that and send us the offending config file? Looks like
> a bug somewhere.

the first problem i faced was the Makefile complaining about an empty
default environment path, though CONFIG_DEFAULT_ENVIRONMENT is not defined:

# CONFIG_DEFAULT_ENVIRONMENT is not set

matze at darwin:/tmp/barebox-2009.12.0$ make
Makefile:1274: *** default environment path empty.  Stop.

this one was easy to work around by commenting the offending section
in the Makefile

reproducing it is as easy as "make ARCH=sandbox menuconfig;
<exit_and_save>; make" from a clean environment

i wasn't able to solve or work around the next one:

make[1]: `arch/arm/include/asm/mach-types.h' is up to date.
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/config.h -> board/at91sam9260ek/config.h
  CC      scripts/mod/empty.o
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  CC      /tmp/barebox-2009.12.0/scripts/mod/empty.o
  CC      /tmp/barebox-2009.12.0/scripts/mod/modpost.o
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:14:19: error: ctype.h: No such file or directory
In file included from /tmp/barebox-2009.12.0/scripts/mod/modpost.c:15:
/tmp/barebox-2009.12.0/scripts/mod/modpost.h:2:20: error: stdlib.h: No such file or directory
/tmp/barebox-2009.12.0/scripts/mod/modpost.h:5:23: error: sys/types.h: No such file or directory
/tmp/barebox-2009.12.0/scripts/mod/modpost.h:6:22: error: sys/stat.h: No such file or directory
/tmp/barebox-2009.12.0/scripts/mod/modpost.h:7:22: error: sys/mman.h: No such file or directory
/tmp/barebox-2009.12.0/scripts/mod/modpost.h:9:20: error: unistd.h: No such file or directory
/tmp/barebox-2009.12.0/scripts/mod/modpost.h:21:1: warning: "ELF_ST_BIND" redefined
In file included from /tmp/barebox-2009.12.0/scripts/mod/modpost.h:10,
                 from /tmp/barebox-2009.12.0/scripts/mod/modpost.c:15:
include/elf.h:119:1: warning: this is the location of the previous definition
In file included from /tmp/barebox-2009.12.0/scripts/mod/modpost.c:15:
/tmp/barebox-2009.12.0/scripts/mod/modpost.h:22:1: warning: "ELF_ST_TYPE" redefined
In file included from /tmp/barebox-2009.12.0/scripts/mod/modpost.h:10,
                 from /tmp/barebox-2009.12.0/scripts/mod/modpost.c:15:
include/elf.h:120:1: warning: this is the location of the previous definition
In file included from /tmp/barebox-2009.12.0/scripts/mod/modpost.c:15:
/tmp/barebox-2009.12.0/scripts/mod/modpost.h:122: error: expected specifier-qualifier-list before 'Elf32_Section'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'fatal':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:57: warning: implicit declaration of function 'vfprintf'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:60: warning: implicit declaration of function 'exit'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'new_module':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:125: warning: implicit declaration of function 'malloc'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:125: warning: passing argument 1 of 'do_nofail' makes pointer from integer without a cast
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'alloc_symbol':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:184: warning: passing argument 1 of 'do_nofail' makes pointer from integer without a cast
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: At top level:
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:252: error: expected declaration specifiers or '...' before 'Elf32_Section'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'export_from_sec':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:254: error: 'sec' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:254: error: (Each undeclared identifier is reported only once
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:254: error: for each function it appears in.)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:254: error: 'struct elf_info' has no member named 'export_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:256: error: 'struct elf_info' has no member named 'export_unused_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:258: error: 'struct elf_info' has no member named 'export_gpl_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:260: error: 'struct elf_info' has no member named 'export_unused_gpl_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:262: error: 'struct elf_info' has no member named 'export_gpl_future_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'grab_file':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:307: error: storage size of 'st' isn't known
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:311: warning: implicit declaration of function 'open'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:312: warning: implicit declaration of function 'fstat'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:316: warning: implicit declaration of function 'mmap'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:316: error: 'PROT_READ' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:316: error: 'PROT_WRITE' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:316: error: 'MAP_PRIVATE' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:316: warning: assignment makes pointer from integer without a cast
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:317: warning: implicit declaration of function 'close'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:319: error: 'MAP_FAILED' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:307: warning: unused variable 'st'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'get_next_line':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:339: warning: implicit declaration of function 'isspace'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'release_file':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:361: warning: implicit declaration of function 'munmap'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'parse_elf':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:373: warning: implicit declaration of function 'perror'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:420: error: 'struct elf_info' has no member named 'modinfo'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:421: error: 'struct elf_info' has no member named 'modinfo_len'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:423: error: 'struct elf_info' has no member named 'export_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:425: error: 'struct elf_info' has no member named 'export_unused_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:427: error: 'struct elf_info' has no member named 'export_gpl_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:429: error: 'struct elf_info' has no member named 'export_unused_gpl_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:431: error: 'struct elf_info' has no member named 'export_gpl_future_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:439: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'handle_modversions':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:467: error: too many arguments to function 'export_from_sec'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:483: warning: implicit declaration of function 'ELF32_ST_BIND'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'find_elf_symbol':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:733: warning: implicit declaration of function 'ELF32_ST_TYPE'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'is_valid_name':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:758: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'warn_sec_mismatch':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:837: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:838: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:843: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:851: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:852: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:858: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:864: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'addend_386_rel':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:888: error: 'R_386_32' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:891: error: 'R_386_PC32' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'addend_mips_rel':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:927: error: 'R_MIPS_HI16' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:931: error: 'R_MIPS_LO16' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:934: error: 'R_MIPS_26' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:937: error: 'R_MIPS_32' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'check_sec_ref':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1039: error: 'EM_386' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1047: error: 'EM_MIPS' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'read_symbols':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1258: error: 'struct elf_info' has no member named 'modinfo'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1258: error: 'struct elf_info' has no member named 'modinfo_len'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1266: error: 'struct elf_info' has no member named 'modinfo'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1266: error: 'struct elf_info' has no member named 'modinfo_len'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1270: error: 'struct elf_info' has no member named 'strtab'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1279: error: 'struct elf_info' has no member named 'modinfo'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1279: error: 'struct elf_info' has no member named 'modinfo_len'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1281: error: 'struct elf_info' has no member named 'modinfo'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'buf_write':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1320: warning: implicit declaration of function 'realloc'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1320: warning: assignment makes pointer from integer without a cast
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'write_if_changed':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1511: error: 'FILE' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1511: error: 'file' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1512: error: storage size of 'st' isn't known
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1512: warning: ISO C90 forbids mixed declarations and code
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1514: warning: implicit declaration of function 'fopen'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1518: warning: implicit declaration of function 'fileno'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1524: warning: passing argument 1 of 'do_nofail' makes pointer from integer without a cast
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1525: warning: implicit declaration of function 'fread'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1531: warning: implicit declaration of function 'free'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1532: warning: implicit declaration of function 'fclose'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1545: warning: implicit declaration of function 'fwrite'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1512: warning: unused variable 'st'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'read_dump':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1581: warning: implicit declaration of function 'strtoul'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c: In function 'main':
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1645: warning: implicit declaration of function 'getopt'
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1648: error: 'optarg' undeclared (first use in this function)
/tmp/barebox-2009.12.0/scripts/mod/modpost.c:1676: error: 'optind' undeclared (first use in this function)
make[1]: *** [/tmp/barebox-2009.12.0/scripts/mod/modpost.o] Error 1
make: *** [common] Error 2

to reproduce from a clean environment:

make ARCH=arm menuconfig
<exit_and_save>
make ARCH=arm CROSS_COMPILE=<your_prefix>

-- 
Matthias Kaehlcke
Embedded Linux Developer
Barcelona

    Yo soy como soy y tú eres como eres, construyamos un mundo donde yo
    pueda ser sin dejar de ser yo, donde tú puedas ser sin dejar de ser
    tú, y donde ni yo ni tú obliguemos al otro a ser como yo o como tú
                                                                 .''`.
    using free software / Debian GNU/Linux | http://debian.org  : :'  :
                                                                `. `'`
gpg --keyserver pgp.mit.edu --recv-keys 47D8E5D4                  `-



More information about the barebox mailing list