On Mon, 29 Apr 2019 23:59:03 +0200
Christian Weisgerber <[email protected]> wrote:

> Charlene Wendling:
> 
> > > > src/cmeta.cpp:1386:16: error: converting to 'bool' from
> > > > 'std::nullptr_t' requires direct-initialization [-fpermissive]
> > > >         return NULL; 
> 
> If that's the only problem, then these could just be fixed by
> changing them to "return false".

TL;DR: i can't get libmp4v2 build with C++14.

Thanks for this one. There are a lot of them actually: mostly 
narrowing to int errors, there is an integer overflow somewhere
i guess, but i can't find it, for example: 

util/mp4art.cpp:378:14: error: case value evaluates to 4026531846,
which cannot be narrowed to type 'int' [-Wc++11-narrowing]
Repeated on lines 378, 382, 391, 395, 402, 406, 413

Using long [0] instead of int (badly) solves these errors, but then
the documentation cannot be generated, because it break long options
management (they've rolled their own...), so the build never 
finishes.

I also considered updating the port, but the current code is
similar.

FreeBSD disables -Wc++11-narrowing, but it only hides the issue afaik.


> > > Again, it breaks because it wants C++<11.
> >  
> > -.include <bsd.port.arch.mk>
> > -.if ${PROPERTIES:Mclang}
> >  CXXFLAGS +=                -std=c++03
> > -.endif
> 
> That really needs a #comment.
>
> Now when I see a naked -std=c++*, I don't know if its purpose is/was
> to switch an old compiler to a higher C++ standard, or to limit a
> new compiler to an older standard.

Especially that context may change in this regard, i'm pleading guilty.

I'm proposing this, what do you think about it?  

> -- 
> Christian "naddy" Weisgerber
> [email protected]
> 

Charlène.


[0] https://github.com/sergiomb2/libmp4v2/issues/163


Index: Makefile
===================================================================
RCS file: /cvs/ports/multimedia/libmp4v2/Makefile,v
retrieving revision 1.19
diff -u -p -u -p -r1.19 Makefile
--- Makefile    29 Apr 2019 11:38:17 -0000      1.19
+++ Makefile    1 May 2019 00:17:13 -0000
@@ -27,6 +27,9 @@ USE_GMAKE =           Yes
 MAKE_FILE =            GNUmakefile
 CONFIGURE_STYLE =      gnu
 
+# As of mp4v2-1.9.1, the code is written for c++03, using c++>=11 causes too
+# many narrowing to int issues in a roll-your-own option management, among
+# others.
 CXXFLAGS +=            -std=c++03
 
 .include <bsd.port.mk>

Reply via email to