[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#748577: marked as done (arch/x86/tools/relocs.c per_cpu_load_addr missing "static")



Your message dated Mon, 06 Jul 2015 02:51:22 +0100
with message-id <1436147482.7337.73.camel@decadent.org.uk>
and subject line Re: arch/x86/tools/relocs.c per_cpu_load_addr missing "static"
has caused the Debian Bug report #748577,
regarding arch/x86/tools/relocs.c per_cpu_load_addr missing "static"
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
748577: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=748577
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: linux
Version: 3.14.4-1
Usertags: goto-cc

During a rebuild of all Debian packages in a clean sid chroot (using cowbuilder
and pbuilder) the build failed with the following error. Please note that we
use our research compiler tool-chain (using tools from the cbmc package), which
permits extended reporting on type inconsistencies at link time.

[...]
  HOSTCC  arch/x86/tools/relocs_32.o
  HOSTCC  arch/x86/tools/relocs_64.o
  HOSTCC  arch/x86/tools/relocs_common.o
  HOSTLD  arch/x86/tools/relocs

file /srv/jenkins-slave/workspace/sid-goto-cc-linux/linux-3.14.4/arch/x86/tools/relocs.c line 698: error: conflicting types for variable "per_cpu_load_addr"
old definition in module relocs_32 file /srv/jenkins-slave/workspace/sid-goto-cc-linux/linux-3.14.4/arch/x86/tools/relocs.c line 698
unsigned int
new definition in module relocs_64 file /srv/jenkins-slave/workspace/sid-goto-cc-linux/linux-3.14.4/arch/x86/tools/relocs.c line 698
unsigned long int
scripts/Makefile.host:127: recipe for target 'arch/x86/tools/relocs' failed
make[6]: *** [arch/x86/tools/relocs] Error 64
/srv/jenkins-slave/workspace/sid-goto-cc-linux/linux-3.14.4/arch/x86/Makefile:179: recipe for target 'archscripts' failed
make[5]: *** [archscripts] Error 2

Unlike other variables in relocs.c, per_cpu_load_addr is not marked static:

http://sources.debian.net/src/linux/3.11.8-1/arch/x86/tools/relocs.c?hl=698#L698

As, however, the type used in its declaration is different for
relocs_32/relocs_64, a type conflict (of the thus duplicate definition) arises.
The standard linker will pick either of the two definitions, possibly resulting
in the 32 bit (unsigned int) version being used, which would cause arbitrary
values to be overwritten when assigning to per_cpu_load_addr in a 64 bit
context.

Best,
Michael

Attachment: pgpnsHBfQi7kR.pgp
Description: PGP signature


--- End Message ---
--- Begin Message ---
Version: 3.18-1~exp1

My patch was applied upstream in 3.18.

Ben.

-- 
Ben Hutchings
If you seem to know what you are doing, you'll be given more to do.

Attachment: signature.asc
Description: This is a digitally signed message part


--- End Message ---

Reply to: