VLC 2.1.0
Jilles Tjoelker
jilles at stack.nl
Tue Oct 22 21:23:29 UTC 2013
On Tue, Oct 22, 2013 at 05:47:15PM +0200, Tijl Coosemans wrote:
> On Tue, 22 Oct 2013 12:30:38 -0200 William Grzybowski wrote:
> > On Tue, Oct 22, 2013 at 11:25 AM, Tijl Coosemans <tijl at coosemans.org> wrote:
> >> On Tue, 22 Oct 2013 10:55:28 -0200 William Grzybowski wrote:
> >>> I am trying to update vlc to 2.1.0, its the final step to get rid of
> >>> ffmpeg1 as well.
> >>> I was wondering if any c++ guru out there have any clues on how to fix this:
> >>> http://pastebin.ca/2469885
> >>> http://people.freebsd.org/~wg/vlc2.1.0.txt
> >> I think the problem is that clang doesn't expect } after a label.
> >> So try adding a ; or (void)0; between the label and vlc_cleanup_run().
> > That works, thank you!
> I suspect that clang is correct to complain about this and if so we
> might want to add (void)0; to the definition of pthread_cleanup_pop
> in /usr/include/pthread.h. Let's see what -standards has to say
> about this.
> Summarised: the idiom that VLC uses is this:
> pthread_cleanup_push(...);
> ...
> if (error) goto cleanup;
> ...
> cleanup:
> pthread_cleanup_pop(...);
> Because the definition of the pthread_cleanup_pop macro starts with }
> clang complains.
glibc has do { } while (0); at the start of the pthread_cleanup_pop
define. I think this is a better option than ; or (void)0; as it
minimizes the wrong things it can combine with.
Reading POSIX, it seems valid to put a label right before an invocation
of pthread_cleanup_pop. In such a case, the invocation still appears as
a statement and can be paired with a pthread_cleanup_push in the same
lexical scope.
Therefore the following patch to src seems appropriate.
Index: include/pthread.h
===================================================================
--- include/pthread.h (revision 256728)
+++ include/pthread.h (working copy)
@@ -175,6 +175,7 @@
{
#define pthread_cleanup_pop(execute) \
+ do { } while (0); \
} \
__pthread_cleanup_pop_imp(execute); \
}
--
Jilles Tjoelker
More information about the freebsd-multimedia
mailing list