From owner-freebsd-ppc@freebsd.org Wed Jan 23 08:20:03 2019 Return-Path: Delivered-To: freebsd-ppc@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 558D114BEF30 for ; Wed, 23 Jan 2019 08:20:03 +0000 (UTC) (envelope-from marklmi@yahoo.com) Received: from sonic303-20.consmr.mail.ne1.yahoo.com (sonic303-20.consmr.mail.ne1.yahoo.com [66.163.188.146]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 18E1C8FA31 for ; Wed, 23 Jan 2019 08:20:01 +0000 (UTC) (envelope-from marklmi@yahoo.com) X-YMail-OSG: 0oAsk.YVM1kL2VHkBGfaYwIuJ5elAmDu9N3d7RZEECLSBXpZO32FdrEMWmcy.ff kW9LQO.uzrT4zymSNyJzuMirIQ3jLOhQ30ZIOZXs0lmfouRFrlQ.IUY6rjnxu.JbKu5jc_mk.1l. gpowm82bSseNWcJxnfPkgvRnLSdTTef6acH.Q6wS4CBD54cAEODTQi1iwF9TlBMVU11Nf64T70DG aiOQvhDvOqckbJCSBsLnrXGRm.wIgBJ.Xcpgxlx_OZMtP4KFxwYE6ekkCmpGmyr4DcUWNa2Wx.ZE XxKu2TseredyO1HDF2dbTuzRrtdaDXtX6E4PZDD2fj8v_oG0jdxOSY2rtg8jh4pZoKHUOIRRl0e5 2vQ2Xy6zVnPc9gzM7YhRN1lTZ5FlEsAX_gqAva8Jsk5NytAwMU8_BwbMVQJgfDAIkRfXiKxlgWjc VYh_zX0NMf9o7JIDRcUB2GNtWYrRefjBkiq0_cQVQpXYy7opWJ2SquWinO5PX.D.8ian6HHDIWka NUi6BUtPxHtfJfUsvyU3bhSqS27S1TD9owwl6yZEBRXkiMeuHK7e942_RijyACu4g36M9_30oGZB t4XgDQJ9wl7ROowCMyHQbEuTk5tqb.fGhS3tKn4qT62YTsFzBq8ymWlQPtud8IKCDiAwy5bO8z9e Zu4uRJGiYA28CG73uHPVoz.i73c3JC52Vl2VbyzllwzGXAHhnXwjCCqHeJH.gohorrj1zOTurGBZ hgY_PkZdaY66pDd.AnHqh5NSR7LYPuYposwHThS7RQp4CY5IyZQn9X1Qc8qowf8aGwRGtQJ3vTUa 4fkm7VFOl45X0fT4ib41BHtxFG33FXuhQXcf_BO8L3i0Jl1kCK9A8XRrTER_WkyoTZ2TOcTAREk0 HkTzNidMqy7YvlwUSfgqqJTYTDIatS2nxNYEp2UBiPJk658b1VFysuMir3rWxK45qD12nlVL0drX YHimTW1dVIbIv_bYvZCmpQrdu5HPA0bmZXHumPJhheJH8arbgWTE1vLg8QUk3rm.GWiEsgzlgkIW syUYs13qU204VvtZSHbuWPAUZ4SCNspystaEKWmzBKLHevt1nv45IFibmvSzWw5axAjgbQ_05SA- - Received: from sonic.gate.mail.ne1.yahoo.com by sonic303.consmr.mail.ne1.yahoo.com with HTTP; Wed, 23 Jan 2019 08:20:00 +0000 Received: from c-67-170-167-181.hsd1.or.comcast.net (EHLO [192.168.1.102]) ([67.170.167.181]) by smtp412.mail.ne1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID d45fffbcf0d9307c41e1a28bceaeb5d6; Wed, 23 Jan 2019 08:19:56 +0000 (UTC) Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (Mac OS X Mail 12.2 \(3445.102.3\)) Subject: Re: GDB TLS testing [actually running some tests finally: a success with -pthread used] From: Mark Millard In-Reply-To: Date: Wed, 23 Jan 2019 00:19:54 -0800 Cc: "freebsd-ppc@freebsd.org" Content-Transfer-Encoding: quoted-printable Message-Id: <52E66D9B-C332-4565-B8E7-F54F6454B062@yahoo.com> References: <19343397-859C-4629-A4A5-B0DCDE25957B@yahoo.com> <5AA68ED2-2615-438B-A6AE-406CBD8E49F7@yahoo.com> <20027C29-0093-4001-A135-23783F8B87F3@yahoo.com> <4048D2A4-7E14-481C-9B5D-00567BCF4463@yahoo.com> <2AAC9738-73BD-475A-888A-252EE853A5C6@yahoo.com> <493AC0BE-3EC6-42B7-B027-FFB6454761B5@yahoo.com> To: John Baldwin X-Mailer: Apple Mail (2.3445.102.3) X-Rspamd-Queue-Id: 18E1C8FA31 X-Spamd-Bar: / X-Spamd-Result: default: False [-0.80 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ptr:yahoo.com]; MV_CASE(0.50)[]; FREEMAIL_FROM(0.00)[yahoo.com]; RCVD_COUNT_THREE(0.00)[3]; DKIM_TRACE(0.00)[yahoo.com:+]; MX_GOOD(-0.01)[cached: mta6.am0.yahoodns.net]; RCPT_COUNT_TWO(0.00)[2]; DMARC_POLICY_ALLOW(-0.50)[yahoo.com,reject]; FROM_EQ_ENVFROM(0.00)[]; RCVD_TLS_LAST(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_ENVFROM(0.00)[yahoo.com]; ASN(0.00)[asn:36646, ipnet:66.163.184.0/21, country:US]; MID_RHS_MATCH_FROM(0.00)[]; DWL_DNSWL_NONE(0.00)[yahoo.com.dwl.dnswl.org : 127.0.5.0]; ARC_NA(0.00)[]; NEURAL_HAM_MEDIUM(-0.79)[-0.792,0]; R_DKIM_ALLOW(-0.20)[yahoo.com:s=s2048]; FROM_HAS_DN(0.00)[]; NEURAL_SPAM_SHORT(0.38)[0.376,0]; NEURAL_HAM_LONG(-0.71)[-0.715,0]; MIME_GOOD(-0.10)[text/plain]; IP_SCORE(0.84)[ip: (2.30), ipnet: 66.163.184.0/21(1.10), asn: 36646(0.88), country: US(-0.08)]; TO_MATCH_ENVRCPT_SOME(0.00)[]; RCVD_IN_DNSWL_NONE(0.00)[146.188.163.66.list.dnswl.org : 127.0.5.0] X-BeenThere: freebsd-ppc@freebsd.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Porting FreeBSD to the PowerPC List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Jan 2019 08:20:03 -0000 On 2019-Jan-22, at 22:53, Mark Millard wrote: > On 2019-Jan-22, at 19:19, Mark Millard wrote: >=20 >=20 >=20 >> On 2019-Jan-22, at 18:32, Mark Millard wrote: >>=20 >>=20 >>=20 >>> On 2019-Jan-22, at 17:06, Mark Millard wrote: >>>=20 >>>=20 >>>=20 >>> . . . >>> So I'm trying: >>>=20 >>> # git clean -f >>> # rm */config.cache */*/config.cache >>> # env CPATH=3D/usr/local/include ./configure >>> . . . >>> # env CPATH=3D/usr/local/include gmake >>> . . . >>>=20 >>> in order to try to add paths after the command line -I paths. >>>=20 >>> . . . This looks like it built. I've not used the build yet. >>>=20 >>=20 >> Looking at a *.core did not go well for my context: >>=20 >> # cc -g -O2 tls_gdb_test.c=20 >> tls_gdb_test.c:16:2: warning: indirection of non-volatile null = pointer will be deleted, not trap [-Wnull-dereference] >> *(char *)NULL =3D 1; >> ^~~~~~~~~~~~~ >> tls_gdb_test.c:16:2: note: consider using __builtin_trap() or = qualifying pointer with 'volatile' >> 1 warning generated. >> . . . >=20 >=20 > So far all tried-combinations of using gcc versions for build > the test program and/or building the gdb used do not work for > "p id" and "p &id" in doing the test. clang is not essential > to the behavior observed. Using "-g -O2 -pthread" to build the test program via system clang or gcc8 (for example) did lead to the likes of: (gdb) run=20 Starting program: /root/c_tests/a.out=20 main: PID 15350 id =3D 15350 (0x810055020) ^C Program received signal SIGINT, Interrupt. main (ac=3D, av=3D) at tls_gdb_test.c:16 16 *(char *)NULL =3D 1; (gdb) bt #0 main (ac=3D, av=3D) at = tls_gdb_test.c:16 (gdb) info threads Id Target Id Frame=20 * 1 LWP 100324 of process 15350 main (ac=3D, = av=3D) at tls_gdb_test.c:16 (gdb) p id $1 =3D 15350 (gdb) p &id $2 =3D (int *) 0x810055020 So it appears one branch of: static void fbsd_fetch_rtld_offsets (struct gdbarch *gdbarch, struct = fbsd_pspace_data *data) { TRY { /* Fetch offsets from debug symbols in rtld. */ data->off_linkmap =3D parse_and_eval_long ("&((Obj_Entry = *)0)->linkmap"); data->off_tlsindex =3D parse_and_eval_long ("&((Obj_Entry = *)0)->tlsindex"); data->rtld_offsets_valid =3D true; return; } CATCH (e, RETURN_MASK_ERROR) { data->off_linkmap =3D -1; } END_CATCH TRY { /* Fetch offsets from global variables in libthr. Note that this does not work for single-threaded processes that are not linked against libthr. */ data->off_linkmap =3D fbsd_read_integer_by_name(gdbarch, = "_thread_off_linkmap"); data->off_tlsindex =3D fbsd_read_integer_by_name(gdbarch, = "_thread_off_tlsindex"); data->rtld_offsets_valid =3D true; return; } CATCH (e, RETURN_MASK_ERROR) { data->off_linkmap =3D -1; } END_CATCH } is working when -pthread is used. =3D=3D=3D Mark Millard marklmi at yahoo.com ( dsl-only.net went away in early 2018-Mar)