On Thu, Aug 10 2017, Mike Belopuhov <m...@belopuhov.com> wrote:
> On Thu, Aug 10, 2017 at 12:27 -0400, Martin Pieuchot wrote:
>> On 10/08/17(Thu) 18:21, Mark Kettenis wrote:
>> > > Date: Thu, 10 Aug 2017 12:10:27 -0400
>> > > From: Martin Pieuchot <m...@openbsd.org>
>> > > 
>> > > Building a profiled binary, using -pg with clang doesn't work as
>> > > expected.  A gmon.out is properly generated when the binary exit,
>> > > but it doesn't include any profiling data.
>> > 
>> > Seems to work when I pass -nopie on the command line.  Did this ever
>> > work since we switched to static PIE?
>> 
>> Yes, it works with GCC, I use it all the time.
>> 
>
> Not sure about that...  Jul 24 snap (from before the clang switch):

I think this is just pledge(2) kicking in.

> kemushi:usr.bin/nc% cc --version
> cc (GCC) 4.2.1 20070719 
> Copyright (C) 2007 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> kemushi:usr.bin/nc% make DEBUG="-g -pg"
> cc -O2 -pipe -g -pg -Werror-implicit-function-declaration -MD -MP  -c 
> /usr/src/usr.bin/nc/netcat.c
> cc -O2 -pipe -g -pg -Werror-implicit-function-declaration -MD -MP  -c 
> /usr/src/usr.bin/nc/atomicio.c
> cc -O2 -pipe -g -pg -Werror-implicit-function-declaration -MD -MP  -c 
> /usr/src/usr.bin/nc/socks.c
> cc -g -pg  -o nc netcat.o atomicio.o socks.o -ltls -lssl -lcrypto
> netcat.o: In function `main':
> /usr/src/usr.bin/nc/netcat.c:429: warning: warning: mktemp() possibly used 
> unsafely; consider using mkstemp()
> kemushi:usr.bin/nc% ./obj/nc 
> usage: nc [-46cDdFhklNnrStUuvz] [-C certfile] [-e name] [-H hash] [-I length]
>         [-i interval] [-K keyfile] [-M ttl] [-m minttl] [-O length]
>         [-o staplefile] [-P proxy_username] [-p source_port] [-R CAfile]
>         [-s source] [-T keyword] [-V rtable] [-W recvlimit] [-w timeout]
>         [-X proxy_protocol] [-x proxy_address[:port]] [-Z peercertfile]
>         [destination] [port]
> zsh: abort (core dumped)  ./obj/nc
> kemushi:usr.bin/nc% gdb -c nc.core obj/nc 
> GNU gdb 6.3
> Copyright 2004 Free Software Foundation, Inc.
> GDB is free software, covered by the GNU General Public License, and you are
> welcome to change it and/or distribute copies of it under certain conditions.
> Type "show copying" to see the conditions.
> There is absolutely no warranty for GDB.  Type "show warranty" for details.
> This GDB was configured as "amd64-unknown-openbsd6.1"...
> Core was generated by `nc'.
> Program terminated with signal 6, Aborted.
> Reading symbols from /usr/lib/libtls.so.15.7...done.
> Loaded symbols for /usr/lib/libtls.so.15.7
> Reading symbols from /usr/lib/libssl.so.43.3...done.
> Loaded symbols for /usr/lib/libssl.so.43.3
> Reading symbols from /usr/lib/libcrypto.so.41.2...done.
> Loaded symbols for /usr/lib/libcrypto.so.41.2
> Reading symbols from /usr/libexec/ld.so...done.
> Loaded symbols for /usr/libexec/ld.so
> #0  0x0000000000412d65 in profil () at {standard input}:5
> 5     {standard input}: No such file or directory.
>       in {standard input}
> (gdb) where
> #0  0x0000000000412d65 in profil () at {standard input}:5
> #1  0x00007f7ffffee8e0 in ?? ()
> #2  0x000000000042062a in sysctl () at {standard input}:5
> #3  0x0000000000412694 in _mcleanup () at /usr/src/lib/libc/gmon/gmon.c:177
> #4  0x0000000000421d6a in *_libc___cxa_finalize (dso=0x0)
>     at /usr/src/lib/libc/stdlib/atexit.c:159
> #5  0x000000000041b997 in *_libc_exit (status=1)
>     at /usr/src/lib/libc/stdlib/exit.c:57
> #6  0x000000000040083e in usage (ret=Variable "ret" is not available.
> ) at /usr/src/usr.bin/nc/netcat.c:1751
> #7  0x000000000040395a in main (argc=1, argv=0x7f7fffff3240)
>     at /usr/src/usr.bin/nc/netcat.c:385
> Current language:  auto; currently asm
> (gdb)
>

-- 
jca | PGP : 0x1524E7EE / 5135 92C1 AD36 5293 2BDF  DDCC 0DFA 74AE 1524 E7EE

Reply via email to