lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTilcHe8jnIBcTC_FjLPGxIbuZV3snU4u0FtdoeDi@mail.gmail.com>
Date:	Fri, 18 Jun 2010 16:27:31 +0200
From:	Geert Uytterhoeven <geert@...ux-m68k.org>
To:	richard -rw- weinberger <richard.weinberger@...il.com>
Cc:	akpm@...ux-foundation.org, tabbott@...lice.com,
	linux-kernel@...r.kernel.org, Jeff Dike <jdike@...toit.com>,
	user-mode-linux-devel@...ts.sourceforge.net, stable@...nel.org
Subject: Re: [RESEND][REGRESSION] um: CONFIG_STATIC_LINK=y broken

On Fri, Jun 18, 2010 at 15:49, richard -rw- weinberger
<richard.weinberger@...il.com> wrote:
> Andrew, Linus, Jeff, ... anyone?
> Please apply this patch.
>
> CONFIG_STATIC_LINK is still broken. :(

I wanted to verify Tim's patch, but after enabling CONFIG_STATIC_LINK,
it fails to link
(with or without your patch):

  LD      .tmp_vmlinux1
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':(.text+0xd4): undefined reference to
`__rela_iplt_end'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0xe5): undefined reference to `__rela_iplt_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0x100): undefined reference to `__rela_iplt_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0x10a): undefined reference to `__rela_iplt_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0x10f): undefined reference to `__rela_iplt_start'
/usr/lib/gcc/x86_64-linux-gnu/4.4.3/../../../../lib/libc.a(elf-init.o):
In function `__libc_csu_irel':
(.text+0x114): undefined reference to `__rela_iplt_start'
collect2: ld returned 1 exit status
  KSYM    .tmp_kallsyms1.S
nm: '.tmp_vmlinux1': No such file
No valid symbol.
make[3]: *** [.tmp_kallsyms1.S] Error 1
make[2]: *** [sub-make] Error 2
make[1]: *** [all] Error 2
make: *** [all] Error 2

This is 2.6.35-rc3 with the hweight fix.
With CONFIG_STATIC_LINK=n, it works fine.

>
> //richard
> ---------- Forwarded message ----------
> From: Tim Abbott <tabbott@...lice.com>
> Date: Mon, Jan 4, 2010 at 10:08 PM
> Subject: [REGRESSION] um: CONFIG_STATIC_LINK=y broken
> To: Linus Torvalds <torvalds@...ux-foundation.org>
> Cc: linux-kernel@...r.kernel.org, Jeff Dike <jdike@...toit.com>,
> user-mode-linux-devel@...ts.sourceforge.net, stable@...nel.org,
> richard -rw- weinberger <richard.weinberger@...il.com>, Sam Ravnborg
> <sam@...nborg.org>
>
>
> Hi Linus,
>
> The following patch fixes a regression that I caused in 2.6.32 when
> cleaning up the um architecture's linker scripts.
>
> I've not heard anything from the um maintainers (they have had since
> Richard Weinberger reported that this patch fixed the problem on December
> 22), so I'm sending this to you now (and CCing stable@ since it affects
> 2.6.32).
>
>        -Tim Abbott
>
> --
>
> um: remove PAGE_SIZE alignment in linker script causing kernel segfault.
>
> The linker script cleanup that I did in commit
> 5d150a97f9391f5bcd7ba0d59d7a11c3de3cea80 accidentally introduced an
> ALIGN(PAGE_SIZE) when converting to use INIT_TEXT_SECTION; Richard
> Weinberger reported that this causes the kernel to segfault with
> CONFIG_STATIC_LINK=y.
>
> I'm not certain why this extra alignment is a problem, but it seems likely
> it is because previously
>
> __init_begin = _stext = _text = _sinittext
>
> and with the extra ALIGN(PAGE_SIZE), _sinittext becomes different from the
> rest.  So there is likely a bug here where something is assuming that
> _sinittext is the same as one of those other symbols.  But reverting the
> accidental change fixes the regression, so it seems worth committing that
> now.
>
> Signed-off-by: Tim Abbott <tabbott@...lice.com>
> Reported-by: richard -rw- weinberger <richard.weinberger@...il.com>
> Cc: Jeff Dike <jdike@...toit.com>
> Cc: user-mode-linux-devel@...ts.sourceforge.net
> ---
>  arch/um/kernel/uml.lds.S |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/um/kernel/uml.lds.S b/arch/um/kernel/uml.lds.S
> index e7a6cca..664f942 100644
> --- a/arch/um/kernel/uml.lds.S
> +++ b/arch/um/kernel/uml.lds.S
> @@ -22,7 +22,7 @@ SECTIONS
>   _text = .;
>   _stext = .;
>   __init_begin = .;
> -  INIT_TEXT_SECTION(PAGE_SIZE)
> +  INIT_TEXT_SECTION(0)
>   . = ALIGN(PAGE_SIZE);

Gr{oetje,eeting}s,

						Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
							    -- Linus Torvalds
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ