Source-Changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
CVS commit: src
Module Name: src
Committed By: riastradh
Date: Sun Apr 13 17:23:06 UTC 2025
Modified Files:
src: UPDATING
src/share/mk: bsd.lib.mk
Log Message:
bsd.lib.mk: Redo rev. 1.418 more selectively.
Previously, in rev. 1.418, I had changed:
.if ${LIBISPRIVATE} != "no"
...
. if defined(NOSTATICLIB) && ${MKPICLIB} != "no"
MAKESTATICLIB?= no
. elif ${LIBISPRIVATE} != "pic"
MKPIC:= no
. endif
...
.endif
...
-.if ${LIBISPRIVATE} == "pic"
+.if ${MKPIC} != "no"
CFLAGS+= -fPIC
AFLAGS+= -fPIC
.endif
This was an attempt to obviate the need for grody conditionals in
private shared libraries like libuv:
.if ${MACHINE} == "sun2"
LIBISPRIVATE=yes
.else
LIBISPRIVATE=pic
.endif
This is wrong, after all, because you can also do MKPIC=no on
non-sun2 platforms if you really want a static build, and it's a mess
to have to write it out in every case.
My theory in making that change was that:
(a) on MKPIC=yes platforms in makefiles without LIBISPRIVATE=yes,
we're building with -fPIC anyway, so ${MKPIC} != no is right;
(b) on MKPIC=yes platforms in makefiles with LIBISPRIVATE=yes, we
shouldn't build with -fPIC and the conditional above sets
MKPIC=no in that case, so ${MKPIC} != no is right;
(c) on MKPIC=no platforms (mainly sun2), no matter what LIBISPRIVATE
is set to, we shouldn't build with -fPIC, so ${MKPIC} != no is
right.
But (a) is wrong, because we use the same makefile to build .pico and
.o objects from which we link (PIC) .so and (non-PIC) .a libraries,
and the distinction is made not in CFLAGS/AFLAGS but in PICFLAGS and
CSHLIBFLAGS.
So, to obviate the need for the .if sun2 conditionals around
LIBISPRIVATE=pic, but avoid breaking everything _other_ than
LIBISPRIVATE=pic, let's make the addition of -fPIC to CFLAGS/AFLAGS
conditional on _both_ LIBISPRIVATE=pic _and_ MKPIC=yes.
PR port-mips/59064: jemalloc switch to 5.3 broke userland
To generate a diff of this commit:
cvs rdiff -u -r1.376 -r1.377 src/UPDATING
cvs rdiff -u -r1.418 -r1.419 src/share/mk/bsd.lib.mk
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index