Re: Strange C++ error with GCC 9.0.1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Jakub, thanks for the tip! Now I moved a little further. I've added
-save-temps to CXXFLAGS and indeed there is something wrong. Here is
how this cstddef file was included:

===========
# 1 "/usr/lib/gcc/x86_64-redhat-linux/9/include/stddef.h" 1 3 4
# 51 "/usr/include/c++/9/cstddef" 2 3


# 52 "/usr/include/c++/9/cstddef" 3
      "C++"
{

namespace std
{

  using ::max_align_t;
}
# 197 "/usr/include/c++/9/cstddef" 3
}
# 25 "./include/strings.hpp" 2

===========

Note the missing extern pragma before "C++" token.

ср, 27 мар. 2019 г. в 15:58, Jakub Jelinek <jakub@xxxxxxxxxx>:
>
> On Wed, Mar 27, 2019 at 03:48:41PM +0100, Peter Lemenkov wrote:
> > I cannot build SIPp anymore. It fails with a very cryptic (for me) message:
> >
> > https://koji.fedoraproject.org/koji/taskinfo?taskID=33763853
> >
> > ```
> > g++ -DHAVE_CONFIG_H -DUSE_OPENSSL -DPCAPPLAY -DRTP_STREAM -DUSE_SCTP
> > -DHAVE_EPOLL -I. -I./include   -D__LINUX -I./include -Wall -pedantic
> > -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2
> > -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong
> > -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1
> > -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic
> > -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection
> > -c -o src/sipp-sipp.o `test -f 'src/sipp.cpp' || echo
> > './'`src/sipp.cpp
> > In file included from ./include/strings.hpp:24,
> >                  from ./include/sipp.hpp:484,
> >                  from src/sipp.cpp:41:
> > /usr/include/c++/9/cstddef:52:8: error: expected unqualified-id before
> > string constant
> >    52 | extern "C++"
> >       |        ^~~~~
> > make[1]: *** [Makefile:1768: src/sipp-sipp.o] Error 1
> > make[1]: *** Waiting for unfinished jobs....
> > make[1]: Leaving directory '/home/petro/rpmbuild/BUILD/sipp-3.5.2'
> > make: *** [Makefile:830: all] Error 2
> > error: Bad exit status from /var/tmp/rpm-tmp.Y5CFt4 (%build)
> > ```
> > ^^^ That's exactly where I'm stuck now. This is how my
> > `/usr/include/c++/9/cstddef` looks like:
> >
> > * https://github.com/gcc-mirror/gcc/blob/25694c85/libstdc%2B%2B-v3/include/c_global/cstddef
> >
> > And I tend to think that this issue is related to this commit:
> >
> > * https://github.com/gcc-mirror/gcc/commit/038feca5beacbe36e28680c8e1a8af83ad4996ae
>
> You should look at what comes before that token and from where,
> that might be a reason why the extern "C++" is rejected at that spot.
> So, preprocess it (-save-temps or -E -o src/sipp-sipp.ii) and look in the
> preprocessed dump.  Perhaps cstddef is included in some context where it
> shouldn't be or there are macros redefining extern or similar bogosities.
>
>         Jakub
> _______________________________________________
> devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
> To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
> Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
> List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
> List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx



-- 
With best regards, Peter Lemenkov.
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux