src: fix fully-static & large-pages combination

Fixes: https://github.com/nodejs/node/issues/23906
Refs: https://github.com/nodejs/node/pull/22079

This change to ld.implicit.script moves libc static code to
.lpstub area and avoids the issue detailed in 23906

Quick performance comparision on web-tooling shows 3%
improvement for the combination over fully-static

cycles                       376,235,487,455  390,007,877,315
instructions                 700,341,146,973  714,773,201,182
itlb_misses_walk_completed        20,654,246       28,908,381
itlb_misses_walk_completed_4k     19,884,666       28,865,118
itlb_misses_walk_completed_2m_4m     769,391           43,251
Score                                   9.13             8.86

PR-URL: https://github.com/nodejs/node/pull/23964
Reviewed-By: Refael Ackermann <refack@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
This commit is contained in:
Suresh Srinivas 2018-10-29 16:47:27 -07:00 committed by Refael Ackermann
parent e35f671aa7
commit d32b5bd567

View File

@ -1,8 +1,10 @@
SECTIONS {
.lpstub : { *(.lpstub) }
.lpstub : {
*libc.a:*(.text .text.*)
*(.lpstub)
}
}
PROVIDE (__nodetext = .);
PROVIDE (_nodetext = .);
PROVIDE (nodetext = .);
INSERT BEFORE .text;