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: <200709051937.04014.vda.linux@googlemail.com>
Date:	Wed, 5 Sep 2007 19:37:03 +0100
From:	Denys Vlasenko <vda.linux@...glemail.com>
To:	Daniel Walker <dwalker@...sta.com>
Cc:	sam@...nborg.org, kai@...maschewski.name,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 0/3] build system: section garbage collection for vmlinux

On Wednesday 05 September 2007 17:29, Daniel Walker wrote:
> On Wed, 2007-09-05 at 14:43 +0100, Denys Vlasenko wrote:
> > Build system: section garbage collection for vmlinux
> > 
> > 
> > Newer gcc and binutils can do dead code and data removal
> > at link time. It is achieved using combination of
> > -ffunction-sections -fdata-sections options for gcc and
> > --gc-sections for ld.
> > 
> > Theory of operation:
> > 
> > Option -ffunction-sections instructs gcc to place each function
> > (including static ones) in it's own section named .text.function_name
> > instead of placing all functions in one big .text section.
> > 
> > At link time, ld normally coalesce all such sections into one
> > output section .text again. It is achieved by having *(.text.*) spec
> > along with *(.text) spec in built-in linker scripts.
> 
> You version doesn't work with CONFIG_MODULES right?

It works with CONFIG_MODULES.

> Also, why do you need this patch,
> 
> [PATCH 1/3] build system: section garbage collection for vmlinux

Because otherwise, for example, .data.percpu sections we already have
get picked up by *(.data.*), and then *(.data.percpu) end up empty:

                __per_cpu_start = .;
                       *(.data.percpu)
                       *(.data.percpu.shared_aligned)
                __per_cpu_end = .;

and all hell breaks loose.

We need to stop using sections named like

.text.xxxx
.data.xxxx
.rodata.xxxx
.bss.xxxx

--
vda
-
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