Hi Steve--

Thanks for the heads-up on this!

On Mon 2017-08-14 21:05:14 -0700, Steve Langasek wrote:
> The hddemux package was failing to build in Ubuntu, because of a pair of
> incompatibilities with Ubuntu's compiler defaults:
>
>  - The .c file was listed on the gcc command line after the libraries it
>    depends on, resulting in a linker error because Ubuntu uses
>    -Wl,--as-needed by default
>    (https://wiki.ubuntu.com/ToolChain/CompilerFlags#A-Wl.2C--as-needed)

Thanks, this is an obviously-correct fix.  i've made it upstream, and
it'll be in the next upstream release of hddemux.

>  - The _GNU_SOURCE define caused gcc to use the GNU version of strerror_r(),
>    which (reasonably, AFAICS from the manpage) resulted in a warning that
>    the return value was discarded (-Wunused-result).  Using _POSIX_C_SOURCE
>    instead works around this by using the XSI version of strerror_r(), whose
>    result can more reasonably be ignored.

This one i'm a bit more skeptical about because these FOO_SOURCE flags
have so many different side-effects :/

The error in question from the ubuntu build log is:

hddemux.c: In function ‘dump_addrinfo’:
hddemux.c:169:7: error: ignoring return value of ‘strerror_r’, declared with 
attribute warn_unused_result [-Werror=unused-result]
       strerror_r(e, paddr+6, sizeof(paddr)-(6+1));
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

I'm likely to just rewrite this chunk of code to avoid strerror_r()
altogether rather than shift the -D definition.  Hopefully that'll
resolve the problem for ubuntu as well.

        --dkg

Attachment: signature.asc
Description: PGP signature

Reply via email to