DragonFly bugs List (threaded) for 2005-05
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: Okay, so what do we do with the new errno?
On Wed, May 04, 2005 at 09:21:43AM -0700, Matthew Dillon wrote:
> The only thing we can do for programs which declare errno regardless
> of anything else is to rip out such declarations and throw an
> #include <errno.h> in instead. Those programs are plain and simply
> broken and the authors need to fix their code.
But there's a bunch of them and totally kills automatic nature of
port builds. So I decided to write an aggressive make rule
to automatically replace these annoying declarations.
%%%
. if defined(USE_EXTERN_ERRNO_SMASHER)
RE_EXTERN_ERRNO=^[[:space:]]*extern[[:space:]]*int[[:space:]]*errno;.*
# for make -jN safety
. ORDER: extern-errno-smasher pre-configure
configure: extern-errno-smasher
extern-errno-smasher:
@${ECHO} "===> Activating errno-smasher" 1>&2
@if ${GREP} -rq "${RE_EXTERN_ERRNO}" ${WRKSRC}; then \
${ECHO} " ==> found errno declaration, smashing it" 1>&2; \
${FIND} ${WRKSRC} -type f -print0 | ${XARGS} -0 \
sed -i.bak -e "s/${RE_EXTERN_ERRNO}/#include <errno.h>/"; \
fi
# I'm using sed instead of ${REINPLACE_CMD} here, because
# it's not activated unless you have USE_REINPLACE defined.
. endif
%%%
This sometimes works, but not if you're in a port directory which has
a dfport override, because WRKSRC evaluates to empty, so I'm only
using it from the command line. Anyone has an idea to make it actually
work?
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]