From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50083.outbound.protection.outlook.com [40.107.5.83]) by dpdk.org (Postfix) with ESMTP id 048D61C111 for ; Fri, 13 Apr 2018 14:37:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=O2F/XHdcNqiERb5m1fJotHV2HtPiYhUDtk0QQgAIWMg=; b=BzUYn1H6IvMHbM0wUCBQ9dBXNixasOshval7YtYcTwRUkT5e5yBC7koKAOSD5Z89Vb2gp+FIk/77/46TeR/lBWKBIC3WXGmcAYeuNWzGhxgnD67Yk1IhXrhIKcWDIHGBS8dag2I2xlPdMXRySl7/zpYd83MuluqouvVC+6OoyH8= Received: from [10.232.14.39] (14.142.187.166) by VI1PR0402MB2782.eurprd04.prod.outlook.com (2603:10a6:800:ad::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.675.10; Fri, 13 Apr 2018 12:37:42 +0000 To: Neil Horman , =?UTF-8?Q?Ga=c3=abtan_Rivet?= Cc: dev@dpdk.org References: <3c46c7947bec6462e07a6c33e39f680c8d9e688b.1523404469.git.gaetan.rivet@6wind.com> <20180412112826.GA8105@hmswarspite.think-freely.org> <20180412215747.f5ga5dh6rfoqx46l@bidouze.vm.6wind.com> <20180413114246.GB1699@hmswarspite.think-freely.org> From: Shreyansh Jain Message-ID: Date: Fri, 13 Apr 2018 18:22:43 +0530 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: <20180413114246.GB1699@hmswarspite.think-freely.org> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Originating-IP: [14.142.187.166] X-ClientProxiedBy: KL1PR0601CA0001.apcprd06.prod.outlook.com (2603:1096:802:1::11) To VI1PR0402MB2782.eurprd04.prod.outlook.com (2603:10a6:800:ad::12) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(48565401081)(2017052603328)(7153060)(7193020); SRVR:VI1PR0402MB2782; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0402MB2782; 3:qegItFt8mlymgh53i98l+f8PABQgUyup6iU5HGIHkiiQ95ajwewqzhIXfWAkorQPUZXJ7MGWa5/InscpzevjUTfd17rF/2GXQReigPOvRJR0JNdSo/7hu1LmKeZUW2ArnqwVM0FiPyevECLdSptb7X+FvDAoc4pAVqBwqAYzA9vOAqOImRQiWvrM3ZteSkO7+AJ/Sb0HEUlO6w7TTIe4CjHn4DAtQXU8MbpI0spbPRJjGNTjlpSu7w/M95ng0ZmI; 25:vcbiyVu0e+rYMO7b7PHkY2QqszL28ceDqqNk6aRIla12sxzxl5nns4qKyTpU7ckUv+90AYKCArwBsNL9w8fOTKIZ6KBwM7RMqAByo+mg8sOf2+VBhGlc5gmujmiB4RWL1zXC8W6Ikp5//ZHRyKaZlyYzODfJ/2UENKw/NRjkQBD7gxsdxXptASeKgKZttm7O9ZuOBuKoxJgt2vTJfenu9P31wNiTdIwsCFC193wStzFRYzNngCMqbXxbFNDmOzVPu69a0+zcDwHz90bMbiYSk3qAyWvc6m+3g3vXH2yF03Fg79dpVe+zlBg87ZCzMCNBdyHL/pRynXnq/kfLKWYydQ==; 31:eBLbr2PmIDSvcxtO1Fo8gvUGPmtPdTvAf5K2RK7fQzlicu9e7LeGgBnWlMkn0fi32srw137/MzbNNC5nHZc05+YgjXJkvUE9aZ+Gl6pUAD5zzMRENaElGbdhQWJr1tBvCkkgsICADAApreSpu0hx+6b6g4GNRR59zq1veI4IK2GwBfMX2ek1T4EWGzfzDymVIo9qA8LywHtLOJxQJLDaKOvK9w8pY0VIQvxMm0g6CmE= X-MS-TrafficTypeDiagnostic: VI1PR0402MB2782: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=shreyansh.jain@nxp.com; X-Microsoft-Exchange-Diagnostics: 1; VI1PR0402MB2782; 20:inrDnqrZAAySKH/bBsNp6M5nxMk+Ucj9xpqDt0Ar5VoG1RgTDEzPyyqccUYvoyEDjssHn7ODLdR/+hN5bPxlhRZin35kvX/jU1OywZIiYvOd5PvMeQ9Z8hbIPHnID24rtrOqYZNf31zQGBVNX3V73YSAyDyLUWA0bhKyDNuI6xmwGyq26yc/i6EtdxZ0eYlnd1bNb0dogaQLdOehG+fbzU5qTA2EKowatcRv3fwJK2aA9OpovwLyh97ysQ0g5RlxOMpZxgnH6z7hu+sqEHWGQD/18bkvaSaoH7ZuVwvm+91sNEUsUeQC5tlZ/RtA7cVloEHIg13+0w8asT5NsuHJHeK/usiojfRf79PxlPNuN8uFoMSjRurazN6hTsG1qbh4AjWD1ZA6fIhOnmAyANx2LWB88a9nJNDJ6ti/gm4GgT4VcvbnIkpmffSLGZUCMqWmUdeVmR2hoD8Nq6qJnbK3cfrBzSxsFkdch8azwdOy7uHA7BuyzxQfgC4Ktx1NK2+P; 4:DOt3P2RZa/IlWRhKQ1ozkgn8kcxOXL0hjjfwEutd/t/3hl/I73kt7SG4DczhqYv1vESuLkoFoCSiCInqDrYS2US4f2vmbLINaBI5mY8UljjgAQQMVZiJrtgYugERuQqhC5qZAvMgjdbgiqhvfzNyp2YgYqJNBgln/0u/Vk2ZXN6pwaLPZhsUemX6oe5rxCjdF/cCtmKt5JKidST7YeB45PV/dEcynqGu2EydnGFUV8UiWTy6rBcDSjreXYatlrH8Hjedk8N/azXjRWzdxzIZTCzC0wtNoxrmG/Mmt0ENB0ZaL58rfb9UmYo6WjlAxijCkNOfAGGFRZMFVIz7jA/juwwbwRZ3/MjTeHJ4wFX9qig= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3231232)(944501327)(52105095)(3002001)(93006095)(93001095)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123564045)(20161123560045)(20161123562045)(6072148)(201708071742011); SRVR:VI1PR0402MB2782; BCL:0; PCL:0; RULEID:; SRVR:VI1PR0402MB2782; X-Forefront-PRVS: 0641678E68 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6049001)(376002)(396003)(366004)(39380400002)(346002)(39860400002)(189003)(199004)(26005)(64126003)(6246003)(67846002)(76176011)(105586002)(53936002)(478600001)(52146003)(23676004)(59450400001)(2486003)(52116002)(31686004)(386003)(110136005)(81156014)(81166006)(31696002)(6306002)(5660300001)(86362001)(44832011)(486006)(316002)(11346002)(16526019)(476003)(446003)(2616005)(956004)(7736002)(93886005)(305945005)(186003)(58126008)(8936002)(25786009)(4326008)(16576012)(77096007)(229853002)(6116002)(65826007)(55236004)(3846002)(5009440100003)(8676002)(2906002)(2870700001)(97736004)(106356001)(47776003)(65956001)(65806001)(966005)(68736007)(6486002)(50466002)(36756003)(66066001)(110426005); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0402MB2782; H:[10.232.14.39]; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtWSTFQUjA0MDJNQjI3ODI7MjM6ZmloTE5ScHJ2Z1VRUDdMNHJzeU56VnFF?= =?utf-8?B?bGdKUWNWOFBRMDNySEhJS25SNlFsRFdTMGdXTTdGQ0VsN3krZzd3YUh2MTJa?= =?utf-8?B?Q3lwczJNRThWL1l4OWk0a3c3OFFwdFFHekhDWTB0ZVZqTzdrTGppWEdyZUtC?= =?utf-8?B?ZHJJTUIwK2hySE9IWmNOa21zVllHajd6dlVUNmZiZzArejhrTUs5eGhlSmZ4?= =?utf-8?B?ZFFvZFVJNmdHZkpHbUZ5dWdQc1d5UngzOU1sQldFMUQ5Sy9IclBrSWd1dVpX?= =?utf-8?B?d2dzK0RDcTBGK2s2aytnUDh1REE2WWNKZDIzSUEvLzUzbnR5Q1Y3VGh3U1o3?= =?utf-8?B?bjJkSTZVcXpIRGZrakd6OWRjS21tbVg2ZkhmeGV6MU9ERGNGVXpzSlRjUzJj?= =?utf-8?B?OEhCdjF2OWR2emN3R2Z4dngzdDlxeTIvNDhlYzhWY2t0RFRNbWV0VkVGait5?= =?utf-8?B?dU1IaERkUjhzc2pzeXI4aldmRVdnYUZVcFkyQUVSM0ZlRldXdXplUHRxdG5I?= =?utf-8?B?MituZUtaVGhQQ0JaaWFGNDJBLzQ2RTh1QStaS0F2Rk80YXRRZzZWK3FZMjZD?= =?utf-8?B?TkVwQzgxMkV2WVozYXRENG4yV2JrM3Vwc0pzVW0zN1pFNnluYjBCYVViR3BE?= =?utf-8?B?ckFZZmhIMVNrOHcrbXJ5ZXhqbGtraHdEK3hvWndjem1nUWh1ZHYzME9SczdB?= =?utf-8?B?VEI3c3lvWWFJdGlTM09QVXdleDZsZXFGclpYNGJYS0l6L0JDdDNvSjE5OW5X?= =?utf-8?B?THRxVUQveEJ2QXQ1UGJ3b3lVT1drZjNPTVcycE9NNWVWR1NFeXIyc3BhZFdJ?= =?utf-8?B?NXpqaXlMaEFiZlVMRU1TOVl1YXlHRGM5WFFUbGRmamN3UzJ0YllHbGlFdnUw?= =?utf-8?B?S2JEcURuQmlRV2d2ZHZHd2JHdEVpSTZYM0Zrak55YzNzUWt6WGQ5OTludHAy?= =?utf-8?B?cGorTllKUVNQb3Nrb1Y4YmdvMVVkYmdGYmlncFp6QmtTZko3QlhQSlVyY2JL?= =?utf-8?B?S2dvdVdZdzZuanBqaEZOdVpHaktZaDVZeUJiL1Z2eXJUbkNwUmt6dm85MXpo?= =?utf-8?B?RndpaWF3R1BmQWEwdjBOaFNZbFFvbVJrcGZ6UGlTZm83Qys1SVhXUjV2eU1B?= =?utf-8?B?YVh0c0pNQUVlRk90QTUxaDl5WWxSTi91WUlSeEpRL2RndGduLzBhM1dTMlhu?= =?utf-8?B?QWFrSDZHaW1nMy9yTnlCTUZlZFZUMkZuejBqdVRsWlRodFBENFhuQ2FCYkJZ?= =?utf-8?B?OE0wcklDbC90anhPczV5QjZEZUl6T1NuVjRickl3d0pKWVRSUGE5UWlwNzlC?= =?utf-8?B?RzdrMHhpWTE2TXBtUnIrcjhvc2pDaFc5K1gva2l3T21RMmFZMmV0MjgwUTZM?= =?utf-8?B?SE14Nk8zUDFYSmszZVVyNXc1M3BHQTdqLzVuWVJPNEJiSFUyMFV4UXU5VmN3?= =?utf-8?B?Rlh0NXkyWSs4MmxtdjhRYUw5UDl4ckUzK0ZHeFpFa0RVV2NWaTg1Z3N1bUV2?= =?utf-8?B?aThyeSs0Sk9PS2RDd01OQnRLOWZoTldCRGRTUllIK005YjB2VGQxbGRYdkd6?= =?utf-8?B?bXVsMjRrOE96eDZ6QXNRNC9nYWdEOXNHN0s1TDRSV1N5ZnpvYXpTQzJleWJJ?= =?utf-8?B?QWFENnNIcW5DLzdlRXFocE14Vkt1ZHFVeTJJOXRHZUJzdlVic2wwcHJpUmhD?= =?utf-8?B?N0l4a1daN2VhQysyYnVZcDB0ZFRpZm5JTUF4cVJOckVWaiswVTZIRDg1Y1l0?= =?utf-8?B?Mjh6ZUFpb3B6TkdkVFFTU1pGcEpiWHd0Z3VBa28rSzdlcUxBcFdrVU5vMk1s?= =?utf-8?B?MXl5U205TmNGekpQVjYzWjdxckdaSmJ4cG1mcEpQcDc0YjRzQmJsRnlZV2x3?= =?utf-8?B?KzgyTVJ4dnk4Yzc5OWJvU0NPWld0NEpUMnl2Q0ZtYlRlVmp6aE1MdCtXTWV0?= =?utf-8?B?c2VRNWQ2Y2UyY0d5Y1VwVmZNZEdVTnJqM1JTSXNZWk9vS0xJOGNBSThaT2FV?= =?utf-8?B?eXJPQ1Y2WDJCNGQ2WGNDQXpJRkdZcEFKZVZOOWpvaW9DUDdFbXFwdnduZHZT?= =?utf-8?B?cXMxc0ZFdi8rUWVKdFFoTkw4UjhmNWxNWW5nMTJXUnRrWnFqb2M5QTJlMnpW?= =?utf-8?Q?r2LdP/uOG2JO0w4fPR156vRXA=3D?= X-Microsoft-Antispam-Message-Info: 8mgeFIo4FU/+F73k2NSwFMTV3d+9Baqm2d0sJ2fEFp3qCsZ20tQg4vM+ptn9VCDgW+ne1WmkMiq+B/VisO7T4E07UA4CU9yZ+YtDXN71IKkswKSNTchw5cgtWtF164CsyL4MAR5KIYOVsb52HloE8T/FLRFxGvywJy/IyM2SxZjPGMb/Xhgr+i7cQigcHvz1 X-Microsoft-Exchange-Diagnostics: 1; VI1PR0402MB2782; 6:bbCtd98HAqElRfcFa8HhW6//DrKfnhdco1MsIcjjVmTifXGQaEf/bl4Iax60Xz6XQmfCe9vG0V7HF4qLX94Hf2t6h9BYZ+v1SlTjdOtO9UCne6mVCOdKKy78PZzmz/vxrZirUNrX/foXS9yA7lhx3I2juiMfG99Rtli31GhsTQvpOrFn7J3hLJI2OV0pNtIPpdX1dpzkerD5Ah8ce0+5rOzShnkppdChe85O5aC9rcS+FixX0kz1rTa7DBmVhlmoOzuoD53EJAvGKBmu+yCfTePYLb9uDpC7jsAHcOjF5uWj5qlAOWGosRW/mHPrSjcDqulZ2cCJQjmAfY2WnlNMzDUxHe0HPiXgo+oS7v5cxM0f4t5GenzUxLdQbNo74gqGH5n8wBtRLEn5L3PPxsiZKOk50xa9IaVhn0Z/TY47+dmns7GLqZupKHbMH9Hwh8Quhvg+Wpcop+/nZw+NcVrWHg==; 5:mHfeIDp79nHWirOtMNeRnj2gR3ei0UyFbKSydR/d3NZdQW0pabjYDTzEDaXK2TcCr0GMc0/mzlemRFWPtENhusZBRhza7UkTpqmI0JVJxBKb2FqYcpe32plyp/dygO1hcIWeKyTZjITNTHk2k1P7iTWhKAdb+Zsk8/0y3A8Ru10=; 24:UAQNkbxOfqSPBgJ7yLDCaRg06cSKAv/CNOguVyvUKpMSNIxhAmAcSjyS3Px98pg73lnUhCqrH7tmTGpelyVUl9LOLKs3M+SDcw35puK23dw= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; VI1PR0402MB2782; 7:vNEgrHrNiEkfS8p00LTckVMj1cFCPEt+x4gdiliVMLccupw2ivqTBMxLDXdXIEXuxaawT8Sz8B+mphKlW1faLIoT2k9RuhVcfS1zdGEJH+ze7PXCwagM2wScd/PgbphKyJLac9ZmOwTPvEp5YANfNSJp4LsPej5M/1lvSUFDhBM9GQBgg4m8nl9zEak8XqxIMJ/w0kxEZuVDJ5aKmW13w2FQDZ4VC5N6yohn7ouftGuIr901v5DKZkCNrPOlMjr4 X-MS-Office365-Filtering-Correlation-Id: 2de55ccd-46cb-4494-de37-08d5a13b5ac3 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2018 12:37:42.7909 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2de55ccd-46cb-4494-de37-08d5a13b5ac3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0402MB2782 Subject: Re: [dpdk-dev] [PATCH v5 02/21] eal: list acceptable init priorities X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 13 Apr 2018 12:37:46 -0000 On Friday 13 April 2018 05:12 PM, Neil Horman wrote: > On Thu, Apr 12, 2018 at 11:57:47PM +0200, Gaëtan Rivet wrote: >> Hello Neil, >> >> On Thu, Apr 12, 2018 at 07:28:26AM -0400, Neil Horman wrote: >>> On Wed, Apr 11, 2018 at 02:04:03AM +0200, Gaetan Rivet wrote: >>>> Build a central list to quickly see each used priorities for >>>> constructors, allowing to verify that they are both above 100 and in the >>>> proper order. >>>> >>>> Signed-off-by: Gaetan Rivet >>>> Acked-by: Neil Horman >>>> Acked-by: Shreyansh Jain >>>> --- >>>> lib/librte_eal/common/eal_common_log.c | 2 +- >>>> lib/librte_eal/common/include/rte_bus.h | 2 +- >>>> lib/librte_eal/common/include/rte_common.h | 8 +++++++- >>>> 3 files changed, 9 insertions(+), 3 deletions(-) >>>> >>>> diff --git a/lib/librte_eal/common/eal_common_log.c b/lib/librte_eal/common/eal_common_log.c >>>> index a27192620..36b9d6e08 100644 >>>> --- a/lib/librte_eal/common/eal_common_log.c >>>> +++ b/lib/librte_eal/common/eal_common_log.c >>>> @@ -260,7 +260,7 @@ static const struct logtype logtype_strings[] = { >>>> }; >>>> >>>> /* Logging should be first initializer (before drivers and bus) */ >>>> -RTE_INIT_PRIO(rte_log_init, 101); >>>> +RTE_INIT_PRIO(rte_log_init, LOG); >>>> static void >>>> rte_log_init(void) >>>> { >>>> diff --git a/lib/librte_eal/common/include/rte_bus.h b/lib/librte_eal/common/include/rte_bus.h >>>> index 6fb08341a..eb9eded4e 100644 >>>> --- a/lib/librte_eal/common/include/rte_bus.h >>>> +++ b/lib/librte_eal/common/include/rte_bus.h >>>> @@ -325,7 +325,7 @@ enum rte_iova_mode rte_bus_get_iommu_class(void); >>>> * The constructor has higher priority than PMD constructors. >>>> */ >>>> #define RTE_REGISTER_BUS(nm, bus) \ >>>> -RTE_INIT_PRIO(businitfn_ ##nm, 110); \ >>>> +RTE_INIT_PRIO(businitfn_ ##nm, BUS); \ >>>> static void businitfn_ ##nm(void) \ >>>> {\ >>>> (bus).name = RTE_STR(nm);\ >>>> diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h >>>> index 6c5bc5a76..8f04518f7 100644 >>>> --- a/lib/librte_eal/common/include/rte_common.h >>>> +++ b/lib/librte_eal/common/include/rte_common.h >>>> @@ -81,6 +81,12 @@ typedef uint16_t unaligned_uint16_t; >>>> */ >>>> #define RTE_SET_USED(x) (void)(x) >>>> >>>> +#define RTE_PRIORITY_LOG 101 >>>> +#define RTE_PRIORITY_BUS 110 >>>> + >>>> +#define RTE_PRIO(prio) \ >>>> + RTE_PRIORITY_ ## prio >>>> + >>>> /** >>>> * Run function before main() with low priority. >>>> * >>>> @@ -102,7 +108,7 @@ static void __attribute__((constructor, used)) func(void) >>>> * Lowest number is the first to run. >>>> */ >>>> #define RTE_INIT_PRIO(func, prio) \ >>>> -static void __attribute__((constructor(prio), used)) func(void) >>>> +static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void) >>>> >>> It just occured to me, that perhaps you should add a RTE_PRORITY_LAST priority, >>> and redefine RTE_INIT to RTE_INIT_PRIO(func, RTE_PRIORITY_LAST) for clarity. I >>> presume that constructors with no explicit priority run last, but the gcc >>> manual doesn't explicitly say that. It would be a heck of a bug to track down >>> if somehow unprioritized constructors ran early. >>> >>> Neil >>> >> >> While certainly poorly documented, the behavior is well-defined. I don't see >> a situation where the bug you describe could arise. >> >> Adding RTE_PRIORITY_LAST is pretty harmless, but I'm not sure it's >> justified to add it. If you still think it is useful, I will do it. >> > It was more just a way to unify the macros is all, probably not important. > >> I'd be curious to hear if anyone has had issues of this kind. >> > I've not had any, but I was suprised to see that the gcc manual didn't > explicitly call out the implied priority of unprioritized constructors I (tried to) looked into the gcc code base. It seems that when priority is not defined, DEFAULT_INIT_PRIORITY 65536, is used. --->8--- gcc/collect2.c --- /* Extract init_p number from ctor/dtor name. */ pri = atoi (name + pos); return pri ? pri : DEFAULT_INIT_PRIORITY; --->8--- Though, I couldn't find any documentation for this fact - and, I can never be confident about gcc code. I found one of the ARM compiler (clang) does has a policy for using non-specified priority as lower than specified priority. [1] [1] https://developer.arm.com/docs/dui0774/latest/compiler-specific-function-variable-and-type-attributes/__attribute__constructorpriority-function-attribute A specified value for RTE_PRIORITY_LAST is not a bad option - it would help in keeping the priorities bound without relying on the unknown of priority for unspecified constructors. > > Neil > >> -- >> Gaëtan Rivet >> 6WIND >>