On Mon, Sep 06, 2004, Ralf S. Engelschall wrote:
> On Mon, Sep 06, 2004, Michael Schloh wrote:
>>   +    %{l_shtool} subst \
>>   +        -e 's/#include "fakepcap.h";/#include "fakepcap.h"/' \
>>   +        tcpprep.c
>>
> Err... either I've missed some deep magic here or this substitution is
> actually a "no operation", isn't it? Also, please remember that the in
> regular expressions you have to escape dots...
>
You are both right and wrong. It is not a non operation, because it removes
the ';' following a preprocessor include. Mostly right on the dots, although
in this context only leads to unintentional substitutions in rediculously
seldom seen (and somewhat erroneous) conditions.

The problem stems from the fact that most C compilers in BSD distros are not
fully ISO C 1999 compliant (fail to implement section 6.10.2). In the
context of yesterday's change to tcpreplay.spec, they fail with error:

  tcpprep.c:68: `#include' expects "FILENAME" or <FILENAME>

There are two possible solutions to this problem.

  1 Leave tcpreplay.spec as is, patching for flaky C compilers
  2 Remove tcpreplay.spec subst, and add a new dependency to GCC

Yesterday I chose the first, being a more minimal and easier to later (in
the next version?) catch and remove bug workaround. There's no problem with
changing the specfile if you disagree, however.

-- 
Michael Schloh von Bennewitz <[EMAIL PROTECTED]>
Development Team, Operations Northern Europe
Cable & Wireless Telecommunications Services
Tel +49-89-92699-227, Fax +49-89-92699-808

Attachment: pgpQLQd1VoD1a.pgp
Description: PGP signature

Reply via email to