rtems-tools building error

Denis Obrezkov denisobrezkov at gmail.com
Sun Jan 8 07:54:45 UTC 2017


2017-01-08 1:36 GMT+02:00 Denis Obrezkov <denisobrezkov at gmail.com>:

> 2017-01-08 1:27 GMT+02:00 Joel Sherrill <joel at rtems.org>:
>
>>
>>
>> On Sat, Jan 7, 2017 at 3:59 PM, Denis Obrezkov <denisobrezkov at gmail.com>
>> wrote:
>>
>>> Hello,
>>> I cloned rtems-tools from https://git.rtems.org/rtems-tools
>>> and I can't build them:
>>>
>>> ~/Projects/rtems/rtems-tools$ ./waf configure
>>> --prefix=$HOME/Projects/rtems/4.11
>>> Setting top to                           : /home/reprofy/Projects/rtems/r
>>> tems-tools
>>> Setting out to                           : /home/reprofy/Projects/rtems/r
>>> tems-tools/build
>>> Version                                  : 4.12.516f9311e61f (4.12)
>>> Checking for program 'python'            : /usr/bin/python
>>> Checking for python version              : (2, 7, 9, 'final', 0)
>>> Checking for 'gcc' (C compiler)          : /usr/bin/gcc
>>> Checking for 'g++' (C++ compiler)        : /usr/bin/g++
>>> Checking for header alloca.h             : yes
>>> Checking for header fcntl.h              : yes
>>> Checking for header process.h            : not found
>>> Checking for header stdlib.h             : yes
>>> Checking for header string.h             : yes
>>> Checking for header strings.h            : yes
>>> Checking for header sys/file.h           : yes
>>> Checking for header sys/stat.h           : yes
>>> Checking for header sys/time.h           : yes
>>> Checking for header sys/types.h          : yes
>>> Checking for header sys/wait.h           : yes
>>> Checking for header unistd.h             : yes
>>> Checking for header vfork.h              : not found
>>> Checking for function getrusage          : yes
>>> Checking for program 'm4'                : /usr/bin/m4
>>> Checking for header sys/wait.h           : yes
>>> Checking for function kill               : yes
>>> Checking for function open64             : not found
>>> Checking for function stat64             : not found
>>> 'configure' finished successfully (0.585s)
>>> reprofy at repdell:~/Projects/rtems/rtems-tools$ ./waf build install
>>> Waf: Entering directory `/home/reprofy/Projects/rtems/rtems-tools/build'
>>> [  5/145] Compiling rtemstoolkit/elftoolchain/libelf/elf.c
>>> [ 12/145] Compiling rtemstoolkit/elftoolchain/libelf/elf_fill.c
>>> [ 13/145] Compiling rtemstoolkit/elftoolchain/libelf/elf_flag.c
>>> [ 14/145] Compiling rtemstoolkit/elftoolchain/libelf/elf_getarhdr.c
>>> ../rtemstoolkit/elftoolchain/libelf/elf.c:34:29: error: expected
>>> expression before ‘,’ token
>>>   .libelf_arch  = LIBELF_ARCH,
>>>                              ^
>>>
>>>
>> :LIBELF_ARCH is defined based on the architecture libelf is being compiled
>> for. The file elf.c is pretty simple and LIBELF is conditionally defined
>> in this file:
>>
>> https://git.rtems.org/rtems-tools/plain/rtemstoolkit/elftool
>> chain/libelf/_libelf_config.h
>>
>> Since the definition of LIBARCH_ARCH is dependent on the host
>> architecture,
>> what host are you compiling on?
>>
>> Also the following command will show you all the gcc predefines. Is one
>> of them
>> for the architecture in the libelf_config.h file?
>>
>> gcc -dM -E - </dev/null | less
>>
>>
>>> Waf: Leaving directory `/home/reprofy/Projects/rtems/rtems-tools/build'
>>> Build failed
>>>  -> task in 'elf' failed (exit status 1):
>>>         {task 140143375691152: c elf.c -> elf.c.5.o}
>>> ['/usr/bin/gcc', '-pipe', '-g', '-O2', '-I/home/reprofy/Projects/rtems/rtems-tools/build',
>>> '-I/home/reprofy/Projects/rtems/rtems-tools/build/rtemstoolkit/elftoolchain/libelf',
>>> '-I/home/reprofy/Projects/rtems/rtems-tools/rtemstoolkit/elftoolchain/libelf',
>>> '-I/home/reprofy/Projects/rtems/rtems-tools/build/rtemstoolkit/elftoolchain/common',
>>> '-I/home/reprofy/Projects/rtems/rtems-tools/rtemstoolkit/elftoolchain/common',
>>> '../rtemstoolkit/elftoolchain/libelf/elf.c', '-c', '-o',
>>> '/home/reprofy/Projects/rtems/rtems-tools/build/rtemstoolkit
>>> /elftoolchain/libelf/elf.c.5.o']
>>>
>>> --
>>> Regards, Denis Obrezkov
>>>
>>> _______________________________________________
>>> users mailing list
>>> users at rtems.org
>>> http://lists.rtems.org/mailman/listinfo/users
>>>
>>
>>
> Information about my host system:
> Debian GNU/Linux 8.6 (jessie)
> SMP Debian 4.2.6-3~bpo8+2 (2015-12-14) x86_64 GNU/Linux
>
> I thought, may be some symbols undefined, and _libelf_config.h can't
> define
> LIBELF_ARCH, but actually I found out that __linux__ symbol is defined in
> my gcc.
>
>
> --
> Regards, Denis Obrezkov
>

It seems that I found the solution.
This is my output from readelf program:
readelf -h SomeFile
Заголовок ELF:
  Magic:   7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
  Класс:                             ELF64
  Данные:                            дополнение до 2, little endian
  Версия:                            1 (current)
  OS/ABI:                            UNIX - System V
  Версия ABI:                        0
  Тип:                               EXEC (Исполняемый файл)
  Машина:                            Advanced Micro Devices X86-64
  Версия:                            0x1
  Адрес точки входа:               0x401bb0
  Начало заголовков программы:          64 (байт в файле)
  Начало заголовков программы:          584096 (байт в файле)
  Флаги:                             0x0
  Размер этого заголовка:            64 (байт)
  Размер заголовков программы:       56 (байт)
  Число заголовков программы:        9
  Размер заголовков раздела:         64 (байт)
  Число заголовков раздела:          40
  Индекс табл. строк загол. раздела: 37

its fields are in Russian, so I just changed search  fields in native-elf
format script
and it works.

-- 
Regards, Denis Obrezkov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/users/attachments/20170108/bb6569aa/attachment-0002.html>


More information about the users mailing list