From: Ingo Schwarze <schwarze@usta.de>
To: Christian Neukirchen <chneukirchen@gmail.com>
Cc: tech@mdocml.bsd.lv
Subject: Re: call for testing: mandoc-1.13.4 release candidate
Date: Sun, 10 Jul 2016 20:34:03 +0200 [thread overview]
Message-ID: <20160710183403.GI14535@athene.usta.de> (raw)
In-Reply-To: <87h9bxiglz.fsf@gmail.com>
Hi Christian,
Christian Neukirchen wrote on Sun, Jul 10, 2016 at 06:48:40PM +0200:
> Ingo Schwarze <schwarze@usta.de> writes:
>> Christian Neukirchen wrote on Sun, Jul 10, 2016 at 04:27:14PM +0200:
>>> - It would be nice to support the LDFLAGS variable in the Makefile
>> What is that needed for? I don't like adding gratuitious features
>> and would prefer to understand the actual purpose in order to find
>> a solution that is as simple as possible.
> We build programs on Void using hardening, and need to pass special
> linker flags for that (add RELRO and BIND_NOW).
Actually, that seems like a useful idea to me, certainly not
gratuitious. Supporting that by real LDFLAGS support in ./configure.local
and in the Makefile seemed cleanest to me, so i just added it, see
the commit below.
>>> - It would be nice to make the default MANPAGER configurable at
>>> compile time, since more(1) on non-BSD systems is an unusable
>>> default (no back scrolling etc.)
>> Hmm, POSIX slightly favours having more(1) as the default in man(1)
>> but explicitly allows a system to use a different pager by default.
>> So maybe. But implementing it is a bit of a bother because it
>> requires patching the file man.1 at configuration time. I'm not
>> sure yet whether i want to do that. I won't do it for the 1.13.4
>> release, it would be too intrusive at this point.
> Perhaps a macro could be used to refer to the default pager, then you
> just need to change one line?
Macros in mdoc(7)? That's possible, but ugly.
>> If you prepare a port for an operating system where the system more(1)
>> is unusable, i'd recommend adding local patches to the appropriate
>> places in main.c and man.1 for now.
> I currently use
>
> sed -i 's,bin/more,bin/less,g' main.c *.1
> sed -i 's,.Xr more,.Xr less,g' *.1
> sed -i 's,"more","less",g' manpage.c
Sure, it's fine if you do something like that locally for now.
Yours,
Ingo
Log Message:
-----------
support LDFLAGS;
suggested by Christian Neukirchen <chneukirchen at gmail dot com>
Modified Files:
--------------
mdocml:
Makefile
configure
configure.local.example
Revision Data
-------------
Index: configure
===================================================================
RCS file: /home/cvs/mdocml/mdocml/configure,v
retrieving revision 1.38
retrieving revision 1.39
diff -Lconfigure -Lconfigure -u -p -r1.38 -r1.39
--- configure
+++ configure
@@ -37,6 +37,7 @@ OSNAME=
CC=`printf "all:\\n\\t@echo \\\$(CC)\\n" | make -f -`
CFLAGS="-g -W -Wall -Wstrict-prototypes -Wno-unused-parameter -Wwrite-strings"
LDADD=
+LDFLAGS=
LD_OHASH=
LD_SQLITE3=
STATIC="-static"
@@ -428,6 +429,7 @@ INSTALL_TARGETS = ${INSTALL_TARGETS}
CC = ${CC}
CFLAGS = ${CFLAGS}
LDADD = ${LDADD}
+LDFLAGS = ${LDFLAGS}
STATIC = ${STATIC}
PREFIX = ${PREFIX}
BINDIR = ${BINDIR}
Index: configure.local.example
===================================================================
RCS file: /home/cvs/mdocml/mdocml/configure.local.example,v
retrieving revision 1.11
retrieving revision 1.12
diff -Lconfigure.local.example -Lconfigure.local.example -u -p -r1.11 -r1.12
--- configure.local.example
+++ configure.local.example
@@ -131,10 +131,17 @@ BINM_SOELIM=msoelim # default is "soeli
LD_OHASH="-lutil"
-# Some platforms may need additional linker flags that are not autodetected.
+# Some platforms may need additional linker flags to link against libmandoc
+# that are not autodetected.
# For example, Solaris 9 and 10 need -lrt for nanosleep(2).
LDADD="-lrt"
+
+# Some systems may want to set additional linker flags for all the
+# binaries, not only for those using libmandoc, for example for
+# hardening options.
+
+LDFLAGS="-Wl,-z,relro"
# It is possible to change the utility program used for installation
# and the modes files are installed with. The defaults are:
Index: Makefile
===================================================================
RCS file: /home/cvs/mdocml/mdocml/Makefile,v
retrieving revision 1.486
retrieving revision 1.487
diff -LMakefile -LMakefile -u -p -r1.486 -r1.487
--- Makefile
+++ Makefile
@@ -408,19 +408,19 @@ libmandoc.a: $(COMPAT_OBJS) $(LIBMANDOC_
ar rs $@ $(COMPAT_OBJS) $(LIBMANDOC_OBJS)
mandoc: $(MAIN_OBJS) libmandoc.a
- $(CC) -o $@ $(MAIN_OBJS) libmandoc.a $(LDADD)
+ $(CC) -o $@ $(LDFLAGS) $(MAIN_OBJS) libmandoc.a $(LDADD)
manpage: $(MANPAGE_OBJS) libmandoc.a
- $(CC) -o $@ $(MANPAGE_OBJS) libmandoc.a $(LDADD)
+ $(CC) -o $@ $(LDFLAGS) $(MANPAGE_OBJS) libmandoc.a $(LDADD)
man.cgi: $(CGI_OBJS) libmandoc.a
- $(CC) $(STATIC) -o $@ $(CGI_OBJS) libmandoc.a $(LDADD)
+ $(CC) $(STATIC) -o $@ $(LDFLAGS) $(CGI_OBJS) libmandoc.a $(LDADD)
demandoc: $(DEMANDOC_OBJS) libmandoc.a
- $(CC) -o $@ $(DEMANDOC_OBJS) libmandoc.a $(LDADD)
+ $(CC) -o $@ $(LDFLAGS) $(DEMANDOC_OBJS) libmandoc.a $(LDADD)
soelim: $(SOELIM_OBJS)
- $(CC) -o $@ $(SOELIM_OBJS)
+ $(CC) -o $@ $(LDFLAGS) $(SOELIM_OBJS)
# --- maintainer targets ---
--
To unsubscribe send an email to tech+unsubscribe@mdocml.bsd.lv
prev parent reply other threads:[~2016-07-10 18:34 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <sfid-H20160709-151232-+015.17-1@spamfilter.osbf.lua>
[not found] ` <20160709131158.GA6629@athene.usta.de>
2016-07-09 13:18 ` Thomas Klausner
2016-07-09 15:30 ` Ingo Schwarze
2016-07-09 13:39 ` Baptiste Daroussin FreeBSD
2016-07-09 14:31 ` Anthony J. Bentley
2016-07-09 15:29 ` New db format (was Re: call for testing: mandoc-1.13.4 release candidate) Baptiste Daroussin
2016-07-09 16:12 ` New db format Ingo Schwarze
2016-08-05 20:26 ` Baptiste Daroussin
2016-07-09 14:28 ` call for testing: mandoc-1.13.4 release candidate Svyatoslav Mishyn Crux
2016-07-10 14:08 ` Ingo Schwarze
2016-07-09 18:21 ` Svyatoslav Mishyn
2016-07-09 21:13 ` Ingo Schwarze
2016-07-09 18:55 ` Svyatoslav Mishyn Crux
2016-07-10 10:46 ` Svyatoslav Mishyn
2016-07-10 13:39 ` Ingo Schwarze
2016-07-10 14:27 ` Christian Neukirchen
2016-07-10 16:36 ` Ingo Schwarze
2016-07-10 16:48 ` Christian Neukirchen
2016-07-10 18:34 ` Ingo Schwarze [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160710183403.GI14535@athene.usta.de \
--to=schwarze@usta.de \
--cc=chneukirchen@gmail.com \
--cc=tech@mdocml.bsd.lv \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).