From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 83758 invoked by alias); 4 May 2018 17:14:12 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 83204 invoked by uid 89); 4 May 2018 17:14:11 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.6 required=5.0 tests=AWL,BAYES_00 autolearn=ham version=3.3.2 spammy=palves X-HELO: sesbmg22.ericsson.net Received: from sesbmg22.ericsson.net (HELO sesbmg22.ericsson.net) (193.180.251.48) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 04 May 2018 17:14:08 +0000 Received: from ESESSHC012.ericsson.se (Unknown_Domain [153.88.183.54]) by sesbmg22.ericsson.net (Symantec Mail Security) with SMTP id 5B.28.30337.DD49CEA5; Fri, 4 May 2018 19:14:06 +0200 (CEST) Received: from ESESBMB503.ericsson.se (153.88.183.170) by ESESSHC012.ericsson.se (153.88.183.54) with Microsoft SMTP Server (TLS) id 14.3.382.0; Fri, 4 May 2018 19:13:16 +0200 Received: from ESESBMB503.ericsson.se (153.88.183.170) by ESESBMB503.ericsson.se (153.88.183.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3; Fri, 4 May 2018 19:13:16 +0200 Received: from NAM03-CO1-obe.outbound.protection.outlook.com (153.88.183.157) by ESESBMB503.ericsson.se (153.88.183.170) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1466.3 via Frontend Transport; Fri, 4 May 2018 19:13:15 +0200 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=simon.marchi@ericsson.com; Received: from [100.94.228.107] (129.192.64.65) by MW2PR1501MB2009.namprd15.prod.outlook.com (2603:10b6:302:b::33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.735.16; Fri, 4 May 2018 17:13:13 +0000 Subject: Re: [PATCH] Define GNULIB_NAMESPACE in unittests/string_view-selftests.c To: Joel Brobecker CC: References: <1525382648-30186-1-git-send-email-simon.marchi@ericsson.com> <20180504165552.f4y7zcxzmgvwngel@adacore.com> From: Simon Marchi Message-ID: Date: Fri, 04 May 2018 17:14:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <20180504165552.f4y7zcxzmgvwngel@adacore.com> Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit X-ClientProxiedBy: YQXPR0101CA0052.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:c00:14::29) To MW2PR1501MB2009.namprd15.prod.outlook.com (2603:10b6:302:b::33) X-MS-PublicTrafficType: Email X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(7020095)(4652020)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);SRVR:MW2PR1501MB2009; X-Microsoft-Exchange-Diagnostics: 1;MW2PR1501MB2009;3:z00nKVw/LwPumY7inTS07/1O/2LuopTaTGaG+TMsuDHcYyRo3PBbd9xtkypZo7iQ7UZxq1w5gUmx3P+lqJ3xNsfUtEcAjVyDLWTgvLrUwUEbnaGdvQJD0E09WERIatgf4G4SNflbmn+ftuSGlnNMnohDYObWFLOnvIbnxm/p9AVt5hEU7J897/+leW9rn+PfRszRy6iSZS15l0G71Z3n+uW4ozfOTy0fOnuRyR0PtfgYXy0DXQ2KtU9f1B9K/2q0;25:eSJGDe6KM0hjjSXrzSc2036GhXXnEOUHERLkFh7sHTXGrWYR0J0z3f0hXq+v614RwiwblfSSBVPGjWSCpctKYspsGux+WRGLX42JhUagqVFj8lMakl8TRzZ/ZpjP25zmXcx236ikfkzz0PNtyVRMDkbhywZuhWk116B+Onakq1lpJdl/aTJ9AOdQheZ+SdIgulKAop9jJWBEXAE+IrpWF/e2NCUgeoyhYSGZ4es7qql/2E3i/HGz6UV5zcr17mFWT/oNkR3gaVInYLqlbyxlmXN4isVaQIRtYvdfgfrMfyLOyjq2nOZF6JhsOv86CUJGKfWdgWZgF4gbHQykbQ9nyg==;31:BWjdQWzz65RuKm4NIsVlLhtlxsFJC3TdRBLe0CWQ15Bigs84vRwFOuiLzPjPCsfiBcHFocgMBRJcEDCfi4Hw8xtXAAfrVtGX8DGKYvjdpZo2x3c8FNHuiQcd8KURqiup2MRzH8CE/YYlo2QJo8SMuRjWICQDh5/Ah9/kzsuroIvtonCr4k/24tAzXiSUxWgpCq6PK3rgcUgEAuVxoLa1TdtskYgxrcbzNgF7uRvxrM4= X-MS-TrafficTypeDiagnostic: MW2PR1501MB2009: X-Microsoft-Exchange-Diagnostics: 1;MW2PR1501MB2009;20:6v9URkCHDG1INrV31Lu+z7O4/xJ9Ge11TyGHSu66igdNzIQ8d9hxX9O3kL8MIlfjfUvNrPAjDU1e03v9tvopH8zEL2ZFWg1C17EgGaz9PkD5xyDduYs9uzWyIsX713maEjV8wUnoWopz9LbSCEmiKJcC85tiaXbkAEx7NyrGvkoSdct3nyVJOSWg0IwYjrl7dd7iebqdiAW+elmq7swHMXdy7fqNrVTiAxt6Vf/afvqdJYfNEXBcnrjraDiCs9FPHy/pzd5tCRwEPovC414EJjM/uvJJx/hJn3D3YYHCa91PiOyXYBEeuXZPDPZ9vEIsFlOR2GUvvldGmL8BClweo9ydm9jQg64cpDLV+2C8AvhVuWPqswQupQ6OoIlj4c8OiEagfWNDHv3yd2wB39sCQVe41S0KoDcsVYudkYjB1r5sohUA7BpJXL60rj6jzuc6qRIvBolR0V6860i1GPYWFC4lC7y8LE0sTBBcaMSdcbxa7vxfy2au8cD0LZnzCPi4;4:ty8pfIIU6jtEyFqagd7dX3QL6vqX8Xbx9s7Xp5JezgtzCcTD3f8Cpy2Asz9t1kCeaFETlcy1Qs6/OiI66PqqxW8bzPflRkwsIhd0uCNSFX5gzHqprLRfwOl2XrOs+3QQBHv1vRN/pr+mhISUzHepf4Lv5vrIO7cPR1raOAgJlpJ9vu2h2BX0sHXEKcUVB1U65pDNmQgDDLZtFiQMYGh/8IlqOYwicjKAzSeks8ZOL9x5VuRfjzRhQYm6KsJIfKLE3AR6OXQxllawsMmUkPmk7cY0XeN1DyHXzaJAZtI/K5Quy1nwum3cmnMY3VKwRZSz6hJiWOt+4CByfIM6AgKXNq0gKrjdYp9MfdH5JEYqA4w= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(166708455590820)(211171220733660); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(3231254)(944501410)(52105095)(10201501046)(3002001)(93006095)(93001095)(6041310)(20161123558120)(20161123562045)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);SRVR:MW2PR1501MB2009;BCL:0;PCL:0;RULEID:;SRVR:MW2PR1501MB2009; X-Forefront-PRVS: 06628F7CA4 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(6049001)(39380400002)(376002)(39860400002)(346002)(396003)(366004)(377424004)(54534003)(189003)(199004)(65826007)(53546011)(386003)(5660300001)(446003)(2870700001)(59450400001)(7736002)(31696002)(65956001)(8676002)(52146003)(23676004)(2486003)(86362001)(76176011)(52116002)(478600001)(16576012)(11346002)(105586002)(44832011)(31686004)(25786009)(58126008)(6486002)(229853002)(2906002)(956004)(65806001)(486006)(47776003)(966005)(53936002)(305945005)(3846002)(6116002)(316002)(2616005)(36756003)(476003)(6246003)(50466002)(68736007)(6666003)(6306002)(186003)(106356001)(4326008)(16526019)(26005)(64126003)(97736004)(8936002)(66066001)(49976009)(6916009)(81156014)(81166006)(78286006);DIR:OUT;SFP:1101;SCL:1;SRVR:MW2PR1501MB2009;H:[100.94.228.107];FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; Received-SPF: None (protection.outlook.com: ericsson.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtNVzJQUjE1MDFNQjIwMDk7MjM6dDRrbnUvWFIrbi9ySllTR0ZQV28weEp4?= =?utf-8?B?R2tlNHhMOXdkNWR4UWE5UGtpRXV4RGpKMHU4R3dTQVRka0lFb1dVd3h0cUYx?= =?utf-8?B?NDgxSEgvUFNEUVgxeG5xUUUyb1JBUkRZMjBhY3Z3RXNMYXJDV1dnVVRZN1gv?= =?utf-8?B?T2hZNjdtNHEzZkcvMlpkVk1vcURUMjU5Y3dNdm0vTW5oczlPWnluNU5hakk2?= =?utf-8?B?bisxMjdONWJLakZhUlJ1OEgvNXl6bUFWdkMzSVU3a2lzMFJCRHdTQTg1M2J1?= =?utf-8?B?UVpDaXhRRGFIVDJrRFRFNHIzTTh1U0EreVJjckltQWU1MnprOXVtLzRpSGxL?= =?utf-8?B?WDFPLzFvT09SN01LT3prR2ZNRTRtWllvcHJ6VEY3b2FZWWFNNDNlajhvU2VY?= =?utf-8?B?U01maEVMSGFoSFY4aFlZVUtoQmNrMnhBV1h5VmI0VTZNZWV1REU3ekVSK3dS?= =?utf-8?B?U05Qd1IrSHI2QVVRRldudi9qeDg4dU1jUkY5VEJYbWVnMkxjWHdvTUhSRnFU?= =?utf-8?B?Y2xCSGZxS24vMzcyODJNVmxpTXhKbHBVYmU0MXRONkV0SW9zbVVTNFFkeDlr?= =?utf-8?B?enFFcGs3c0J4Snl1V1N1WE1wdjJiMGxnbVArK0RwVXdJMnAxaEd4dC9GSTgy?= =?utf-8?B?M1BLdEFNSTJWUmxOZVNmQ1h4bm5XdFh1VjlCTDYwTmwwUGJsV0dVY0c0Z2h1?= =?utf-8?B?bVlSQWZFSmlHQVBSVFVsTCsyUXp0c3FqZ0U5OVE2YTJxU2VyYWhhbFZoa0ZK?= =?utf-8?B?UmRSQ0xSZ0ZGZGZ1RXdsWXJKWlk3UnFqT0xIUGlEL2RLRjhZYXpFOVpORmhx?= =?utf-8?B?UDFiUmsvSkdPZStRRzA3K0h3NUw2ZGE4Sk5jdEx2alpqbmdIKzJTYzEvVENN?= =?utf-8?B?VEE4Ym1BL1RNeWY0UDRsMlZoalN3OWVxRTNUZ2V3Nk1WcmpDYzdoN2pBdGFs?= =?utf-8?B?eTU2eDZJQXVWT3BTdndud2tUcTlHOVNKOXhOWmNaVFIwRjh3NnJ0eGU3b2kr?= =?utf-8?B?WHZzMjExdkE5WGg1ZEFLbGpwT1dWNG9ZQUR5ekxHS2UrcUtZMXhoRDhiVzRX?= =?utf-8?B?TVZzbmhJTjNkWUxYQnFxUHRhZGh4MTg4RjlWd1FXTENZWXhtR0FoOFhSZDRT?= =?utf-8?B?SysrZWpDZGtMSEZ4NWhVanN5UW1Sa21sUHZnajRaQWRGaUdCV3Vpd3BwRkt3?= =?utf-8?B?T1greXF5cTd0WExjbDJhNllRQVlnSDlsOFJCMUZnbzduY2tDTU5HQno4WXM5?= =?utf-8?B?TlJ3cWVNSEZucXV1SzFpcUlLOCtIQm5jNFlKVmR4QWt6K2RvdEIzeml4SXhR?= =?utf-8?B?Nm9rOFhlTmlmUGdSSGV3YmtHTzl0MHFkVS9XK0FVejVwUTV4Z2FhWjFzM1Bt?= =?utf-8?B?WmF6U1FRcE9sNTVvZ05Mc0VwVnFTazhGNWdZcThVSWxJek9tckZOU0t2REg2?= =?utf-8?B?cjkvN0RkOExBZklVZWxYUnE2ODBnM1lza0hKZWhxbGNDai9Jc3RSUlRnbXM5?= =?utf-8?B?ZUxKeURNSkdJczFQL05samJNcVJydnMzSGZOVjRORnlrNXNTY3pkaWRtekRx?= =?utf-8?B?QVgwNlc0VFVyTTd4MVlkbEg1ZDVOakt6SnFuS3g0U3pEcFFsRzFSNWpMQThQ?= =?utf-8?B?SS85d3RNd2pyOGhvdTQ3ZmlVS1Fib01lc0lwRmdUNjIyZCtDelZwWXgyekNZ?= =?utf-8?B?aGRzVWdOb0d0ZmxDa0FnQTg4eXRjTVB0NUNNbHlUOHlzdXFmZjJwUTdqb0hO?= =?utf-8?B?QktxbytYYlpmZWF2YmZXSDJwN1QrcnZUcHRBOWhVMHpHd3ZUWnRhRit6MmZK?= =?utf-8?B?cWlRSThHYkVBRjNTaVRCTFd4ekRZQ3hzWnljNnUzbUVJTVhZQVF3ZHlRTGpI?= =?utf-8?B?WGsyVVUva3p1OU9DbXRRT3I4cmNNeVN5am1iR3ZWR1BCakFwN1RvZ3UwZXhF?= =?utf-8?B?U0Z2UjNQWVVwSHZlZisyQ2VTLzJldjMrN3RkQ2hwNGExZ3F0SFBsdjg1dE96?= =?utf-8?B?MU05V2NHbWNEemtxTUdDVWpsSEsybjZtcUtnSU8rQmJjRGE1RmxhNTE5Qzlt?= =?utf-8?B?OGUrL2RHQzQzQVNPMkQ2MFBGNGtjWFpQQVRKdytpUitvNm92cTk3M0JRd2dF?= =?utf-8?Q?LwXXr6aEfLJGSW17a/rNmvLWA=3D?= X-Microsoft-Antispam-Message-Info: V4+Qnw65K5XZEbHnn5Y1rPN9/C/QNtsEu+34Sn/6Gr/uye3/5Wh6H0HeoafGoipzgHC6+poEa51D+Go0UGJdswHeZTj8mZd8PhDsLm94pbLtZtQhwITel800OXY45MNz98QPJoN8fCTq2vl1+ydbgoKuvDBhGOcC3fm1DW2fzgkh+5rfxlu/Vu6VEeio8op8 X-Microsoft-Exchange-Diagnostics: 1;MW2PR1501MB2009;6:TeDSz/0ZfIloEYxLkYPLrBu2rsl8bfDt6GRvBuDUnBGbnBYwyn/UfLdqR+3kL1Eu2QXj7e6dCtqA0U+xgp9YiFg8EYMIHqvxq4vitjxGENWXgeap1jkl1MsdkFTFS/ZueNMepD77Z0M1CxYtN4D7yqz+RTdXNOCLj+oZTLpCXmx7VSOtcFcWOt5JWFFB9eehT5ulUDjbOAZTfo1NhS6MZXTPBk+wdS8ixkRUWiI/py+FrioeBixK2eefcezGMEJ/7m+UyRnNPHmv0iigciFgiInPFOD7gGHa0GKSHrf/LzuKakMBSMfXhwwlafnKKAeOhcRIhkHsFoP87OtGy31YAXuwFCiaaEIkyscsVSOJ7IUADpIVBcJdQzgl4QrsXhBcPvHdSPqPRW68c1uQrLCKXVKCx5+HQyPDLWm4m2Qx//Oehj0AnOZdOXRL18O0dfYpuapmcqTcwYpj0kwBUWLECg==;5:6l1C7VP8U3KiyqQqLB361yfB9pCPdP5pG5Y00zVrr6pDuhnYxQ8EZ/y9JLI8aPyoBnxSGmar/iJRktDpS836lOJFFhZV+BqmI9jG96WVEBHqBZpEGe1hZTIk1B+z9ApK1d+fSP/kF8x/H1tpzLfKEE8J/dUFk0V3z8Bzf2gu2Nc=;24:VOXdljLiK0fHOeAJkc7tnnWEXM50Ge3KVHIFOaK8uV1FE4dhLZIKPSSD+uDpFkwTZFqwSHt/3xDTGy1iPnYGTYmTU1UuCNbFxElhQlMdNaA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;MW2PR1501MB2009;7:geBwaQSUr7eF06zFRFE9ode/h9ojn/kmg7PaUoz3sN7bq7+giCFfdBzcHd6rHP/fGTWF1rGTj+zcILVCRzhYp1rhVa2T9u458O1HQZ0U1ZRAQBI5NFC9ujWarqxs1thTJ5HDqAu3PW3XOnVQ2NML+TFFn36DU19WOcjup7yKikFbIJcb7+iuz2aMpvnw4/Gyc7GaitiEavGHjh4FFZfibxt+9A1mBRnAj2bJn7WjzLWD3giKtqM8c1Q8Q1e6rhpk X-MS-Office365-Filtering-Correlation-Id: c71451d5-8a1f-4690-aa68-08d5b1e25204 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2018 17:13:13.3149 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c71451d5-8a1f-4690-aa68-08d5b1e25204 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 92e84ceb-fbfd-47ab-be52-080c6b87953f X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW2PR1501MB2009 X-OriginatorOrg: ericsson.com X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00103.txt.bz2 On 2018-05-04 12:55 PM, Joel Brobecker wrote: >> When building with x86_64-w64-mingw32-g++ (to test cross-compiling for >> Windows), I get this error: >> >> unittests/string_view-selftests.o: In function `selftests::string_view::inserters_2::test05(unsigned long long)': >> /home/emaisin/src/binutils-gdb/gdb/unittests/basic_string_view/inserters/char/2.cc:60: undefined reference to `std::basic_ofstream >::rpl_close()' >> >> This is caused by gnulib redefining "close" as "rpl_close", and >> therefore messing up the declaration of basic_ofstream in the libstdc++ >> header. The solution would be to use gnulib namespaces [1]. Until we >> use them across GDB, we can use them locally in files that are >> problematic, like this one. >> >> gdb/ChangeLog: >> >> * unittests/string_view-selftests.c: Define GNULIB_NAMESPACE. > > I noticed the exact same problem, and came up with the exact same > solution. Sorry for not reporting right away, I have been swamped > :-( and also wanted to spend some more time investigating the bigger > picture; it seems to me like we may be having a huge time bomb > in our hands?!? I am not sure if it can get any worse than that, just a compile or link failure that is relatively easy to fix. > In other words, either we don't define GNULIB_NAMESPACE, but then > we run into unwanted renames of class method names; or we defined > GNULIB_NAMESPACE, but that means we must be prefixing all the symbols > we call that are covered by the imported part of GNULIB with that > namespace. Exact. > What worries me is that I don't see what's preventing us from hitting > that issue outside of the unittests code? We know we can adjust our > own classes, but this problem occured with a system class, so we had > no choice but to use GNULIB_NAMESPACE. I worry that the transition > from no GNULIB_NAMESPACE to using GNULIB_NAMESPACE in a given unit > will leave some C system calls that should normally be covered by > gnulib silently now reverting to the system (buggy) version. Actually, gnulib seems to poison the function it replaces, so we won't be able to use it by mistake. Let's say I add a "close" call: CXX unittests/string_view-selftests.o /home/emaisin/src/binutils-gdb/gdb/unittests/string_view-selftests.c: In function ‘void selftests::string_view::run_tests()’: /home/emaisin/src/binutils-gdb/gdb/unittests/string_view-selftests.c:169:12: error: call to ‘close’ declared with attribute warning: The symbol ::close refers to the system function. Use gnulib::close instead. [-Werror] close (0); ^ And since we can enable GNULIB_NAMESPACE per compilation unit, we can do it progressively. Once we are done, we can remove all those GNULIB_NAMESPACE defines and have a single one in common-defs.h, just before including gnulib. Pedro already started playing with that a while ago, I am not sure what was the conclusion: https://github.com/palves/gdb/compare/palves/cxx-gnulib-namespace I'll wait for him to give his feedback on this patch. Simon