delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2025/02/11/14:27:14

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 51BJRDfT451328
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 51BJRDfT451328
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=NAkUiotn
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B543A3858282
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1739302031;
bh=RLO0R1b8LwoTYDOaoo3zL+SgaLsFSGhiOWIfRBZQp+U=;
h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:
List-Help:List-Subscribe:From:Reply-To:From;
b=NAkUiotns/ZT0GuXM2xKNFs1xPmXeMqrzkDZTL1ImZzaX9bnIawbpRqt/81TgjeW4
DQlK7Ua8VFEHqQSuljik2os3pcI0+MZkbOVPoAHFnbYWAB6sg4IpdAROrHPHwp+c4a
+SL5A1KZhoDsbNmIJH4JjPEFB+AehxKC0ma8kpEM=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D07313858D34
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D07313858D34
ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1739301966; cv=pass;
b=WUs2Ar1LrsqwFzBo3J+bJ+LCCDU4eeFLW1/Q84qwrdL1XCADjub24KW7rLAxKAo6QLhfK92q88U3CVMXx2ysz/MiquqzrnHajOHu2hDMiy/RmpZm1ce2s3F/Fy2B/y0YVWdgi1ghTHR7rxZ45a23/d9u4Z3eB3OIbxnw4eGH9e4=
ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key;
t=1739301966; c=relaxed/simple;
bh=Mn2QJkDLkVHLCW/rWU/sh+e752Eyz85WKSxIZi6YDR0=;
h=DKIM-Signature:Message-ID:Date:To:From:Subject:MIME-Version;
b=kJxImr/B02/wV1qFpxUdxh3bBdGl4Sc0/j1/ADtdIACknTN/5t3TEKyYYhiENk4LIFibtXED25VwTSpFU7EBYMnQt0MnzymRuWYQKETBQE+/s2cURyz9QvVzergdEm7gj/dkB18I9W0rzQ4D5vP+ud2zbx5d3gwh0Luroo8p+BM=
ARC-Authentication-Results: i=2; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D07313858D34
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
b=dj6fFtOVXEb8IZ0sb87gzWSSP8imxYJY0wKz/hSTfTuErD/qLUpU73J+ce0OVVRsE16OLUBd8AxgjlITUXufZ3KtqJBymLUTlcty1ebTm75g0fcFYGxOLV7WUeoaaXkuUqJbadISvfgwqRavoQF/+KKOu6JtG/WrX4DXtuQ/ehObkUhPtv8yjMSWg8TPdRoZcOBkQweRGbwYRiAvfgM1KiiudixE6Y/CWVoZn2HN/CuJOijHpGBwNfzgtXWlX1Xb9Jwo5dPZ0DBYSEgdCLUV/uxYOERMIbD909Lwjkf3DmtUF/Wfa5xXhbDEgSHqI3jA2fi8Aky6xka6ra5PdyBQlQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
s=arcselector10001;
h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
bh=WDKIgWTNrMHfoYuFVJjrgDbKR2TNN+CowrdSFvaujrc=;
b=jjeBxGBm4weURdt97T/ubrmcsk6U87UW/Pdcwmv4fhK8CLXvWfTgM7jWskVw1Xbuxp8ZSOY+VvhPkd+FZ5qUNkWGlTmbFCxShvHZJ6gl8dMtnA0n/BxRyHOZJ4OHlR/YYHIYyJR3evthwE0uwv6X3C9MTBUbdN+Fv2bN1hey9zmE5rNSe31uDrY0JaOCcyHOx/NFZPU2DMeda0/3gUH11X+o5sfrbbvK/DzNmOoH7mdk94aubFc4Ag/zZML36oof6zTqVLMwmyjNPJg1cZSl++NOjcqJGtPaJGG+A3fF2yDH3EjDyTWV4nftE5KuGTYyNKcMek9TBOZcllkswLlx6g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
smtp.mailfrom=cornell.edu; dmarc=pass action=none header.from=cornell.edu;
dkim=pass header.d=cornell.edu; arc=none
Message-ID: <9c6a1ccc-d2fb-4aaf-b8c2-29574fa640b4@cornell.edu>
Date: Tue, 11 Feb 2025 14:26:01 -0500
User-Agent: Mozilla Thunderbird
To: The Cygwin Mailing List <cygwin AT cygwin DOT com>
Subject: __builtin_thread_pointer
X-ClientProxiedBy: BN9PR03CA0423.namprd03.prod.outlook.com
(2603:10b6:408:113::8) To SN6PR04MB5151.namprd04.prod.outlook.com
(2603:10b6:805:90::25)
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: SN6PR04MB5151:EE_|SA0PR04MB7337:EE_
X-MS-Office365-Filtering-Correlation-Id: f78a5c13-c621-483c-1587-08dd4ad1ecd7
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014;
X-Microsoft-Antispam-Message-Info: =?utf-8?B?RnhYcHAzMlBtUnJHa0VEQzI0N1Q1NUJjY2ZxeTVIajJlaHkzUDI1OWZaVU5U?=
=?utf-8?B?R2M2SE1MenhSdXZrdDNjZ0p6aVBIbUdNNG1iMlNOWWNNdGFnRG14VjFRUllk?=
=?utf-8?B?WW5TeEJnWmhsMmpmcmJMN25jUnoxRnkrWFlKWExHd2dSb1ZyYjI1ZzFLbDFG?=
=?utf-8?B?aHIydkttb0NxcnJaS3RNOHlNaHpXdFV4b0dXV2tMaG9UMmd1RnBoNlZUaE05?=
=?utf-8?B?WDZOeWo0UjdROTB6dEt3VmU1VUpNMjU3TFQ4RzFDeStSam4wTjBiOXRvNWgy?=
=?utf-8?B?cTFPUktvS2ZTQVhCUzBmc0cvd01iMVI2TEp3ZjdCR2RST3d3eEI1OHJ2WEd3?=
=?utf-8?B?aVJLOE9PMVJVZG9wNmY0OXFWcTVqZXZvUzBKOVBjbERmQnlWNkMrOXBES0Jt?=
=?utf-8?B?bWVqd3VNZ3g0WkxIMW5CdnJjY1E3d08wL0RIK1hON1FTd0g5YzAvQVBvQ2Mx?=
=?utf-8?B?Q2IrZUh1QUNvZ04vK0NuT2tqMnM4YUVsOHZVUUFZbHBWZHVCQmlrZDNHNUtp?=
=?utf-8?B?aTZEa0hDWjQ1NmJDWllXM0ZmSWpPWUF4amw3dVhFVXlaRlo3anh5eU1MalVN?=
=?utf-8?B?Q1VpU1ZQZEZWUkoyNEFzTmdKcXhyaURVc3k1NW5hQVRXR0pyQy83bmdQZytD?=
=?utf-8?B?RjdVZkR4TUh3Vmd5RWwycS9mblRtb2tMd2UxOG96b3VHMHJwVlVZYUM3aTZ5?=
=?utf-8?B?MmY3YkRqeW9FWExxajVmbDV5TkhNMzkwUktFd3JlN0M3TUJvSjlUaEd1T2h6?=
=?utf-8?B?V3dMU0Y5WnRNcGpjNldvRlV6Q1U0Nk9PSnRWVHZjS1ZkUGZ4TXVoaER1YUZS?=
=?utf-8?B?TzJPUUJOL2JWbWthT2FyMWwzUTVwblJIdHBhTjBLdHZhcDBRaldETUlVSktv?=
=?utf-8?B?MkJzNjFkcitleFVRaEZ0RTRuZUlyVWdnQ2t6dFB4VGJvRVZLWWRWWm1UNk9r?=
=?utf-8?B?ZU9YZm8yRUhORE5MZVlwMk5aTXRnQXd6eHM1YUQ1dHFXS2NnUVJTNjhJTXEz?=
=?utf-8?B?US9qR0EvcGpXS3laZkZKWmpQdC9wUWZOaGdiWGUrYU45U1JlTmV6WGl3Q05N?=
=?utf-8?B?R1BEYjZZU3FROVN3d3dPTWlWWDVhVUZnMzBrNTY4UWpVRXdIY0RoSTNyR1c4?=
=?utf-8?B?RzZrREJwZ3lhSHRGeXJUWVZ0RnZuZFVVZVYzcko5Y2tnTkpHZWhOM0h1Slhz?=
=?utf-8?B?dE0wNjk3Z3Y2Z2hQYmVhdzhpRnAzRHh0SDd1d2hHZG5wbFhKZjIxMVpVWjBO?=
=?utf-8?B?SmNRRWRrbFFzdnp3d2lOVWpxcDZnd2Yra0lYY29ROEsycEgzaHVkQTV2dlRw?=
=?utf-8?B?SU1xejF0bWMrWFBFSndPbXRMQktzS3BKSDhzY1FydVhyVlZWRUhJSDJpQllw?=
=?utf-8?B?aFphdlppSDVhU2h6NjdtRFQrMForMzAvWU5MT0pNRmR1a1dxZkxwNUhCVEhX?=
=?utf-8?B?N3paZlNTaDF4elk5Qlh1dVVZVmdxSWVIakhEQmYzTUpLSmFxc2JaVm1yOHJO?=
=?utf-8?B?cWJuVWY2TFpMWjQ4OVMwbUpDSFpSYUo4N0RiSThRdVdZNmNQQ2dhRm43dDJz?=
=?utf-8?B?U0NmZitlS2ZndGpneElhZHNBTndtL2lpL3FpUUVWUXFHb0QwbkpWejM5S3B3?=
=?utf-8?B?T0RranNzOThtMC8vcGJNNDVyTk94QVFGMElGZGFKQ2VPZWtsQnZZRVFmQ1Ri?=
=?utf-8?B?bzk2MDY1eDVwUWIrOUNqa0FsYk5JeStpenM2VnhwelFYamt2VWdyUG5sNjBQ?=
=?utf-8?B?bHhRMWpsbFg4MUJVblFaL0FsdjBGSURmVEtuRk9FSDk5ZkNLQVFmQlhGNDk3?=
=?utf-8?B?L3J6Y01pYkR2N0FNa2EwUlhUNDdIQmIxaXFXL2Z3ZG1Cem9jc1cycHV0Qlha?=
=?utf-8?Q?Vc7ylxtV3ZvHk?=
X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
IPV:NLI; SFV:NSPM; H:SN6PR04MB5151.namprd04.prod.outlook.com; PTR:; CAT:NONE;
SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?UElucm9rSFZ5WS8wVWRodnhzZ2xkQS9JS2FTSDF4anhBd0IrU3k2WXUrN1R0?=
=?utf-8?B?ODNROWZ0clRCeE5IUVgwa1N2cDE4ZW42Q0lZUjhTWm8zTVpacE5kdUsra1RJ?=
=?utf-8?B?UGlUWGJLK2FHWDNyQzZIQnZUMlo2SUsvRWxYc0ptRnBoTS8zeC8vL2EzVXg1?=
=?utf-8?B?NEJOUElDY1lNSVd2OU9SZDNNdVJFMTVyRzByM2FXOG85WGpLbzlaU1J2Q0lU?=
=?utf-8?B?YmdiMGZIcjlTeWV3NDFJTGxUOW9UV1dYN1hLdGNQNXdhNWplOFRlQ2pIS3lT?=
=?utf-8?B?TzBDWU5nRGNGZ0lQeHhpOFR2cENtbXhUZndDbkhpR0dMbWpndjZ2S2FldlIw?=
=?utf-8?B?aXh0TmgxOGpHNW16UU1nM2xwS0hoNExQUktBc2I2NWlVTXMzQjVUcEVwbXUr?=
=?utf-8?B?VmtRRnBkY0t4Yzlrd2VMOFRGeUc1d1FNcWNLVEJsTTJJaVNMOHpVcGpUQ21x?=
=?utf-8?B?RC92dE9DVzg0bC9VV0xqRGdGeE5lemdNRVJxMk1RVGhWRHMyWVQzakl1WFZT?=
=?utf-8?B?U2lqaTZVWnpna0ZQczcySUlvRWhTdlRzUG9kYW1qR1N4MVM4VXBibm85VXRZ?=
=?utf-8?B?UE0ydjloYmRhdE9WZCtET3lTMlB1UHp4dmRSVUxQekQwandWMEVyeDVrTWRM?=
=?utf-8?B?ZHYrRldndTFPOFJDVUI0YWpaQXJEQ3J0T2w2OFo0WHFoQXNwMW1XV0lxWWlh?=
=?utf-8?B?eGxVK0M2bUVWVGJBSmcrQlBzTCt5ZXRlQStxb0VGcGV4bDRWRFJLTjFBWnZJ?=
=?utf-8?B?elRqWGN2eXphS0NjVkhWc1BRUmhLVE5FeU0xMXJ4MVdEQzlQUndVUHFvaUJJ?=
=?utf-8?B?THVzV25WS3V5UC9mR1dDT3dLQXkxeXFVRzVKN3FDTXBlUktGc2dHNHgzMXhU?=
=?utf-8?B?dlFHQU9oZTJwTHFsdTJEYXJXenEvemhTTkZuQitFQ2daUUdzVTFaQkpvOGpx?=
=?utf-8?B?dktVd3VpU2RBcEpxOXByZGhsVFI0ZWVFdWJ5VUFOQ0l5RmlBUlZ5N09BbkVO?=
=?utf-8?B?a0liL2dkUURqQmo0b2M2R1p4dUg1UGp5RlMxTVQ4cS9oS0xacW03TWxYcVdi?=
=?utf-8?B?aEdsSWxJWmZkWnliZ0NxK1liRVVOdFhNZEFjYzltR1Q5dFVQTEE1WXg5Z2wr?=
=?utf-8?B?MDNuKzJaRzFVa2lUU05YZ2R6eU0yVzVuMkpXTUptcEVnNGxTcHFwcEN6dWtk?=
=?utf-8?B?d2lKZk9ORVgrRUtQOThBSVgrOVpWSDlzTU56T1EwdmpjaHA4NTdIdVQyckNl?=
=?utf-8?B?TlpaOENGalBoL2JhT1hENHB4bmZLOUJBS3ArTTJqWjEyUk0rTGd6RFFQYnJU?=
=?utf-8?B?aCthd25HRlp6Qk9PVlgyREVXdmZXTFNvMWpBY1pXU3E0VFV0T1pzRDJJdmpJ?=
=?utf-8?B?Sy9aeXNBeUxPZ0lnZXFNR2doNitqK2dGUndkckVXbzZEOFdKVkpadUpGNFBF?=
=?utf-8?B?OWJGRkRkOEdLRjd6QStWeENQREFjRGhwM3pzREZUTlp1U09wNE1GTHVmbTEx?=
=?utf-8?B?NXZWRGhlU2Y2ZVI5V2VKS0J0eGRoM09IM2VPcWVHVG4vV0FQL3BSZHA3YTd3?=
=?utf-8?B?cDRaU29GN0Nqc2ZYdEQvdlV0a29pTjh5TDRMMXdOdmQxMnJsUW1HWUJaeG5o?=
=?utf-8?B?RWUvd28zcFNQR2dVMWlweXhNMEoxOGhjOW5ubzFuMUM2SDg2LzZtcG1VVlB6?=
=?utf-8?B?Y2sxZG9ESG12aUNJY0ZFT3pENWsvK3dZTzkvRHduQXQzS0R4b3ZvOFNKbDFO?=
=?utf-8?B?bkxKSXdhUGFVcjlHK2drbnYwK2pqY0dsbkViZ1F0bGRvSStxbDVjZ01RamJJ?=
=?utf-8?B?d2JFaWxhZWR1Yk9nUS9UbzJBRFBRSFdmamhTMEVUcEppZnkvOFBxQ2RDb0Y4?=
=?utf-8?B?UndxTTVnbmYrd1h0OW1MYWJDWmdXWEtycSt0U0o4UW1DVGMxWm5KWDU0aXM1?=
=?utf-8?B?OEdTMWY3bWdJL3ZwaVE2L2ZVZ2Z4anhwTkJFbHlXWW5ISFdNTmpPMkthRXhY?=
=?utf-8?B?dlFueXFMVzE2RWpGemgxT0JHdjRueSs1WW1IZWFIeS85b2paVFBJdGkrcUtx?=
=?utf-8?B?WkNneUZ2YmpoODArWDVoWW9WKzlEam1uVWZiR0V4SVVjTWMwQ3M1Z3cyUXpE?=
=?utf-8?Q?nmQIsiPXQWppOyvIG1GzatEMP?=
X-OriginatorOrg: cornell.edu
X-MS-Exchange-CrossTenant-Network-Message-Id: f78a5c13-c621-483c-1587-08dd4ad1ecd7
X-MS-Exchange-CrossTenant-AuthSource: SN6PR04MB5151.namprd04.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Feb 2025 19:26:03.9658 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 5d7e4366-1b9b-45cf-8e79-b14b27df46e1
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: +hy+jmTaAghG7Z2sOW+XnvnjcE/KQUxopUWo8FzJMjBRShHYfcyXWlATgirvcYTcTVOKSZgkRcBqs3HlvqBbxg==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR04MB7337
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Ken Brown via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Ken Brown <kbrown AT cornell DOT edu>
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

Does Cygwin support __builtin_thread_pointer?  I'm guessing not, because 
I'm getting a link error (undefined reference to 
`__builtin_thread_pointer') when I try to build some software that uses 
it.  Or is there something that would have to be added to the link 
command line?  The full command line and error message are quoted below, 
in case anyone spots something obvious.

Ken

[242/242] Linking C executable luametatex.exe
FAILED: luametatex.exe
: && /usr/bin/gcc.exe -ggdb -O2 -pipe -Wall -Werror=format-security 
-Wp,-D_FORTIFY_SOURCE=3 -fstack-protector-strong 
--param=ssp-buffer-size=4 
-ffile-prefix-map=/home/kbrown/src/cygluametatex/luametatex-2.11.05-1.x86_64/build=/usr/src/debug/luametatex-2.11.05-1 
-ffile-prefix-map=/home/kbrown/src/cygluametatex/luametatex-2.11.05-1.x86_64/src/luametatex=/usr/src/debug/luametatex-2.11.05-1 
-O2 -g -DNDEBUG -s CMakeFiles/luametatex.dir/source/luametatex.c.o -o 
luametatex.exe -Wl,--out-implib,libluametatex.dll.a 
-Wl,--major-image-version,0,--minor-image-version,0  libtex.a  liblua.a 
libmp.a  libluarest.a  libluasocket.a  libluaoptional.a  libpplib.a 
libminiz.a  libsoftposit.a  libpotrace.a  -ldl  libmimalloc.a  -lpthread 
  -lm && /bin/sh CMakeFiles/luametatex.dir/post-build.sh 7847d1a259c666c4
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
libmimalloc.a(alloc.c.o): in function `_mi_prim_thread_id':
/usr/src/debug/luametatex-2.11.05-1/source/libraries/mimalloc/include/mimalloc/prim.h:251:(.text+0x187): 
undefined reference to `__builtin_thread_pointer'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
/usr/src/debug/luametatex-2.11.05-1/source/libraries/mimalloc/include/mimalloc/prim.h:251:(.text+0x437): 
undefined reference to `__builtin_thread_pointer'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
/usr/src/debug/luametatex-2.11.05-1/source/libraries/mimalloc/include/mimalloc/prim.h:251:(.text+0x4e7): 
undefined reference to `__builtin_thread_pointer'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
libmimalloc.a(alloc.c.o):/usr/src/debug/luametatex-2.11.05-1/source/libraries/mimalloc/src/free.c:340:(.text+0x597): 
undefined reference to `__builtin_thread_pointer'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
libmimalloc.a(init.c.o): in function `_mi_prim_thread_id':
/usr/src/debug/luametatex-2.11.05-1/source/libraries/mimalloc/include/mimalloc/prim.h:251:(.text+0xd1): 
undefined reference to `__builtin_thread_pointer'
/usr/lib/gcc/x86_64-pc-cygwin/12/../../../../x86_64-pc-cygwin/bin/ld: 
libmimalloc.a(init.c.o):/usr/src/debug/luametatex-2.11.05-1/source/libraries/mimalloc/include/mimalloc/prim.h:251: 
more undefined references to `__builtin_thread_pointer' follow
collect2: error: ld returned 1 exit status

-- 
Problem reports:      https://cygwin.com/problems.html
FAQ:                  https://cygwin.com/faq/
Documentation:        https://cygwin.com/docs.html
Unsubscribe info:     https://cygwin.com/ml/#unsubscribe-simple

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019