maintainer-feedback requested: [Bug 248795] std::random_shuffle broken with LLVM11

2020-08-20 Thread bugzilla-noreply
Tobias Kortkamp  has asked freebsd-toolchain (Nobody)
 for maintainer-feedback:
Bug 248795: std::random_shuffle broken with LLVM11
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248795



--- Description ---
The following example no longer compiles after the LLVM11 import.
This affects a number of ports like x11/workrave, www/newsboat,
japanese/zinnia, ...  I can patch them to use shuffle instead, but
even though random_shuffle is deprecated it should still work,
right?

$ cat foo.cc
#include 
#include 

int main()
{
std::vector v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::random_shuffle(v.begin(), v.end());
}
$ c++ foo.cc
foo.cc:7:10: warning: 'random_shuffle>' is
deprecated [-Wdeprecated-declarations]
std::random_shuffle(v.begin(), v.end());
 ^
/usr/include/c++/v1/algorithm:3095:1: note:
'random_shuffle>' has been explicitly marked
deprecated here
_LIBCPP_DEPRECATED_IN_CXX14 void
^
/usr/include/c++/v1/__config:991:39: note: expanded from macro
'_LIBCPP_DEPRECATED_IN_CXX14'
#  define _LIBCPP_DEPRECATED_IN_CXX14 _LIBCPP_DEPRECATED
  ^
/usr/include/c++/v1/__config:974:48: note: expanded from macro
'_LIBCPP_DEPRECATED'
#define _LIBCPP_DEPRECATED __attribute__ ((deprecated))
   ^
1 warning generated.
ld: error: undefined symbol: std::__1::__rs_get()
>>> referenced by foo.cc
>>>   /tmp/foo-6a4153.o:(void
std::__1::random_shuffle
>(std::__1::__wrap_iter, std::__1::__wrap_iter))

ld: error: undefined symbol: std::__1::__rs_default::~__rs_default()
>>> referenced by foo.cc
>>>   /tmp/foo-6a4153.o:(void
std::__1::random_shuffle
>(std::__1::__wrap_iter, std::__1::__wrap_iter))
>>> referenced by foo.cc
>>>   /tmp/foo-6a4153.o:(void
std::__1::random_shuffle
>(std::__1::__wrap_iter, std::__1::__wrap_iter))

ld: error: undefined symbol: std::__1::__rs_default::operator()()
>>> referenced by foo.cc
>>>  
/tmp/foo-6a4153.o:(std::__1::__independent_bits_engine::__eval(std::__1::integral_constant))
>>> referenced by foo.cc
>>>  
/tmp/foo-6a4153.o:(std::__1::__independent_bits_engine::__eval(std::__1::integral_constant))
c++: error: linker command failed with exit code 1 (use -v to see invocation)
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 248795] std::random_shuffle broken with LLVM11

2020-08-20 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248795

Bug ID: 248795
   Summary: std::random_shuffle broken with LLVM11
   Product: Base System
   Version: CURRENT
  Hardware: Any
OS: Any
Status: New
  Keywords: regression
  Severity: Affects Only Me
  Priority: ---
 Component: bin
  Assignee: toolch...@freebsd.org
  Reporter: to...@freebsd.org
CC: toolch...@freebsd.org
 Flags: maintainer-feedback?(toolch...@freebsd.org)
CC: toolch...@freebsd.org

The following example no longer compiles after the LLVM11 import.
This affects a number of ports like x11/workrave, www/newsboat,
japanese/zinnia, ...  I can patch them to use shuffle instead, but
even though random_shuffle is deprecated it should still work,
right?

$ cat foo.cc
#include 
#include 

int main()
{
std::vector v = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::random_shuffle(v.begin(), v.end());
}
$ c++ foo.cc
foo.cc:7:10: warning: 'random_shuffle>' is
deprecated [-Wdeprecated-declarations]
std::random_shuffle(v.begin(), v.end());
 ^
/usr/include/c++/v1/algorithm:3095:1: note:
'random_shuffle>' has been explicitly marked
deprecated here
_LIBCPP_DEPRECATED_IN_CXX14 void
^
/usr/include/c++/v1/__config:991:39: note: expanded from macro
'_LIBCPP_DEPRECATED_IN_CXX14'
#  define _LIBCPP_DEPRECATED_IN_CXX14 _LIBCPP_DEPRECATED
  ^
/usr/include/c++/v1/__config:974:48: note: expanded from macro
'_LIBCPP_DEPRECATED'
#define _LIBCPP_DEPRECATED __attribute__ ((deprecated))
   ^
1 warning generated.
ld: error: undefined symbol: std::__1::__rs_get()
>>> referenced by foo.cc
>>>   /tmp/foo-6a4153.o:(void 
>>> std::__1::random_shuffle 
>>> >(std::__1::__wrap_iter, std::__1::__wrap_iter))

ld: error: undefined symbol: std::__1::__rs_default::~__rs_default()
>>> referenced by foo.cc
>>>   /tmp/foo-6a4153.o:(void 
>>> std::__1::random_shuffle 
>>> >(std::__1::__wrap_iter, std::__1::__wrap_iter))
>>> referenced by foo.cc
>>>   /tmp/foo-6a4153.o:(void 
>>> std::__1::random_shuffle 
>>> >(std::__1::__wrap_iter, std::__1::__wrap_iter))

ld: error: undefined symbol: std::__1::__rs_default::operator()()
>>> referenced by foo.cc
>>>   
>>> /tmp/foo-6a4153.o:(std::__1::__independent_bits_engine>>  unsigned long>::__eval(std::__1::integral_constant))
>>> referenced by foo.cc
>>>   
>>> /tmp/foo-6a4153.o:(std::__1::__independent_bits_engine>>  unsigned long>::__eval(std::__1::integral_constant))
c++: error: linker command failed with exit code 1 (use -v to see invocation)

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


[Bug 248745] /usr/bin/lldb dumps core when attempting to print variable with `p`, `fr v` works

2020-08-20 Thread bugzilla-noreply
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=248745

Mark Linimon  changed:

   What|Removed |Added

   Assignee|b...@freebsd.org|toolch...@freebsd.org

-- 
You are receiving this mail because:
You are the assignee for the bug.
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"


Re: Undefined reference to __bswapsi2/__bswapdi2

2020-08-20 Thread Dimitry Andric
On 20 Aug 2020, at 19:52, Gleb Popov  wrote:
> 
> On Wed, Aug 19, 2020 at 10:15 PM Gleb Popov  wrote:
> 
>> Hi toolchain@
>> 
>> I'm building the latest GHC on 12.1-RELEASE i386 and having almost the
>> same problem as with atomic functions. This time the error is
>> 
>> d: error: undefined symbol: __bswapsi2
> referenced by TTY.c
>  RTS.thr_p_o:(rtsSyms) in archive
>> /wrkdirs/usr/ports/lang/ghc/work/ghc-8.10.2/rts/dist/build/libHSrts_thr_p.a
>> 
>> ld: error: undefined symbol: __bswapdi2
> referenced by TTY.c
>  RTS.thr_p_o:(rtsSyms) in archive
>> /wrkdirs/usr/ports/lang/ghc/work/ghc-8.10.2/rts/dist/build/libHSrts_thr_p.a
>> 
>> What's wrong with that? These functions seem to be present in our
>> compiler-rt.
>> 
> 
> Reading /usr/src/lib/libcompiler_rt/Makefile.inc, it seems that we don't
> compile these functions. What's the reason for this?

I'm not aware of any particular reason, except that nobody seems to have
run into this omission before. It looks like on x86, compilers usually
just emit bswap instructions instead of libcalls for these situations.

Apparently we have historically only added bswapdi and bswapsi for arm,
mips and riscv.

-Dimitry



signature.asc
Description: Message signed with OpenPGP


Re: Undefined reference to __bswapsi2/__bswapdi2

2020-08-20 Thread Gleb Popov
On Wed, Aug 19, 2020 at 10:15 PM Gleb Popov  wrote:

> Hi toolchain@
>
> I'm building the latest GHC on 12.1-RELEASE i386 and having almost the
> same problem as with atomic functions. This time the error is
>
> d: error: undefined symbol: __bswapsi2
> >>> referenced by TTY.c
> >>>   RTS.thr_p_o:(rtsSyms) in archive
> /wrkdirs/usr/ports/lang/ghc/work/ghc-8.10.2/rts/dist/build/libHSrts_thr_p.a
>
> ld: error: undefined symbol: __bswapdi2
> >>> referenced by TTY.c
> >>>   RTS.thr_p_o:(rtsSyms) in archive
> /wrkdirs/usr/ports/lang/ghc/work/ghc-8.10.2/rts/dist/build/libHSrts_thr_p.a
>
> What's wrong with that? These functions seem to be present in our
> compiler-rt.
>

Reading /usr/src/lib/libcompiler_rt/Makefile.inc, it seems that we don't
compile these functions. What's the reason for this?
___
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"