[Bug 255796] multimedia/smpeg: fix incorrect clang warning suppression flag.

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Tue May 11 15:24:52 UTC 2021


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=255796

            Bug ID: 255796
           Summary: multimedia/smpeg: fix incorrect clang warning
                    suppression flag.
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: acm at FreeBSD.org
          Reporter: dim at FreeBSD.org
             Flags: maintainer-feedback?(acm at FreeBSD.org)
          Assignee: acm at FreeBSD.org

Created attachment 224853
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=224853&action=edit
Use -Wno-c++11-narrowing instead of -Wno-error-narrowing

During an exp-run for llvm 12 (see bug 255570), it turned out that
multimedia/smpeg does not build with clang 12.0.0 [1]:

libtool: compile:  c++ -DPACKAGE=\"smpeg\" -DVERSION=\"0.4.4\" -I. -I. -O2
-pipe -Wno-error-narrowing -fstack-protector-strong -fno-strict-aliasing
-I/usr/local/include/SDL -I/usr/local/include -D_REENTRANT -D_THREAD_SAFE
-DTHREADED_AUDIO -DNDEBUG -I.. -DNOCONTROLS -I.. -I../audio -I../video
-fno-exceptions -fno-rtti -c huffmantable.cpp  -fPIC -DPIC -o
.libs/huffmantable.o
warning: unknown -Werror warning specifier: '-Wno-error-narrowing'
[-Wunknown-warning-option]
In file included from huffmantable.cpp:12:
../MPEGaudio.h:129:7: warning: 'register' storage class specifier is deprecated
and incompatible with C++17 [-Wdeprecated-register]
      register int r=(buffer[bitindex>>3]>>(7-(bitindex&7)))&1;
      ^~~~~~~~~
../MPEGaudio.h:135:7: warning: 'register' storage class specifier is deprecated
and incompatible with C++17 [-Wdeprecated-register]
      register unsigned short a;
      ^~~~~~~~~
huffmantable.cpp:553:8: error: constant expression evaluates to -1 which cannot
be narrowed to type 'unsigned int' [-Wc++11-narrowing]
  { 0, 0-1, 0-1, 0,  0, htd33},
       ^~~
huffmantable.cpp:553:8: note: insert an explicit cast to silence this issue
  { 0, 0-1, 0-1, 0,  0, htd33},
       ^~~
[... more of these ...]

The Makefile attempts to suppress these warnings by adding -Wno-error-narrowing
to CFLAGS, in case clang is used, but this warning suppression flag does not
exist. It is called -Wno-c++11-narrowing instead, and the attached patch
renames the flag.

Note that it might be better to compile all of the port with -std=gnu++98 since
it is very old C++ code, but it does not seem to respect USE_CXXSTD=gnu++98, as
the configure scripts are also pretty old. Better not try to mess with it too
much...

[1]
http://package22.nyi.freebsd.org/data/mainamd64PR255570-default/2021-05-08_16h02m24s/logs/smpeg-0.4.4_15.log

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-ports-bugs mailing list