Module Name: src Committed By: riastradh Date: Sat Apr 16 18:28:22 UTC 2016
Modified Files: src: UPDATING Log Message: Add a note about PIE for amd64 requiring clean objdir. To generate a diff of this commit: cvs rdiff -u -r1.267 -r1.268 src/UPDATING Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/UPDATING diff -u src/UPDATING:1.267 src/UPDATING:1.268 --- src/UPDATING:1.267 Sun Apr 3 06:16:02 2016 +++ src/UPDATING Sat Apr 16 18:28:22 2016 @@ -1,4 +1,4 @@ -$NetBSD: UPDATING,v 1.267 2016/04/03 06:16:02 mrg Exp $ +$NetBSD: UPDATING,v 1.268 2016/04/16 18:28:22 riastradh Exp $ This file (UPDATING) is intended to be a brief reference to recent changes that might cause problems in the build process, and a guide for @@ -19,6 +19,25 @@ See also: BUILDING, build.sh, Makefile. Recent changes: ^^^^^^^^^^^^^^^ +20160410: + + amd64 needs full "make cleandir" or deletion of objdir now that + PIE has been enabled for amd64. PIE, or position-independent + executables, means all code, including executables and not just + shared libraries, is position-independent and hence able to be + relocated by ASLR, address space layout randomization. + + The change was made in Makefile variables for compiler and + linker flags, for which make(1) does not record dependencies, + hence it is unable to detect that all .o files need rebuilding. + + Partial rebuilds with some modified source files will likely + fail when linking executables, since the linker refuses to mix + position-independent code with position-dependent code in + position-independent executables: + + .../x86_64--netbsd/bin/ld: foo.o: relocation R_X86_64_32 against `...' cannot be used when making a shared object; recompile with -fPIC + 20160401: Ports switching to GCC 5.3 will need a full "make cleandir".