ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Alexey Tourbin <at@altlinux.ru>
To: devel@lists.altlinux.org
Subject: Re: [devel] Как победить eu-elflint с его unknown symbol binding?
Date: Tue, 11 May 2010 15:53:08 +0400
Message-ID: <20100511115308.GT11797@altlinux.org> (raw)
In-Reply-To: <20100511144248.044b0fb9@deimos.localdomain>

[-- Attachment #1: Type: text/plain, Size: 2464 bytes --]

On Tue, May 11, 2010 at 02:42:48PM +0400, Ivan A. Melnikov wrote:
> Пытаюсь собрать boost 1.43.0, пока при помощи gear-rpm -ba в локальной
> системе (Сизиф x86_64). В конце сборки получаю кучу ошибок от
> eu-elflint (кусок лога ниже). Google и search.altlinux.org не помогли.
> Подскажите, пожалуйста, как с этим бороться.

elfutils плохо понимает новые символы STB_GNU_UNIQUE.

elfutils/libebl/eblsymbolbindingname.c:
    83            if (binding >= STB_LOPROC && binding <= STB_HIPROC)
    84              snprintf (buf, len, "LOPROC+%d", binding - STB_LOPROC);
    85            else if (binding == STB_GNU_UNIQUE
    86                     && (ident = elf_getident (ebl->elf, NULL)) != NULL
    87                     && ident[EI_OSABI] == ELFOSABI_LINUX)
    88              return "GNU_UNIQUE";

Кажется binutils всегда выставляет ident[EI_OSABI] в 0, то есть
generic System V ABI.  ident[EI_OSABI] это восьмой байт в файле,
легко проверить.  Например /usr/bin/perl:
00000000  7f 45 4c 46 02 01 01 00  00 00 00 00 00 00 00 00  |.ELF............|

В binutils код другой.

binutils/binutils/readelf.c:
  7883        if (binding >= STB_LOPROC && binding <= STB_HIPROC)
  7884          snprintf (buff, sizeof (buff), _("<processor specific>: %d"),
  7885                    binding);
  7886        else if (binding >= STB_LOOS && binding <= STB_HIOS)
  7887          {
  7888            if (binding == STB_GNU_UNIQUE
  7889                && (elf_header.e_ident[EI_OSABI] == ELFOSABI_LINUX
  7890                    /* GNU/Linux is still using the default value 0.  */
  7891                    || elf_header.e_ident[EI_OSABI] == ELFOSABI_NONE))
  7892              return "UNIQUE";
  7893            snprintf (buff, sizeof (buff), _("<OS specific>: %d"), binding);
  7894          }

> section [ 3] '.dynsym': symbol 632: unknown symbol binding
> section [ 3] '.dynsym': symbol 633: unknown symbol binding
> section [ 3] '.dynsym': symbol 638: unknown symbol binding
> verify-elf: WARNING: ./usr/lib64/libboost_math_tr1-st.so.1.43.0: eu-elflint failed
> 
> [... skip ...]
> 
> section [ 3] '.dynsym': symbol 1561: unknown symbol binding
> section [ 3] '.dynsym': symbol 1577: unknown symbol binding
> verify-elf: WARNING: ./usr/lib64/libboost_wave.so.1.43.0: eu-elflint failed
> ошибка: Неверный код возврата из /tmp/rpm-tmp.5122 (%install)

Тем не мене, это только warning.
Там ещё где-то должен быть error.

[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]

      parent reply	other threads:[~2010-05-11 11:53 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-05-11 10:42 Ivan A. Melnikov
2010-05-11 10:51 ` Andrey Rahmatullin
2010-05-11 12:32   ` Ivan A. Melnikov
2010-05-11 11:53 ` Alexey Tourbin [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20100511115308.GT11797@altlinux.org \
    --to=at@altlinux.ru \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git