tech@mandoc.bsd.lv
 help / color / mirror / Atom feed
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

      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).