From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 26406 invoked by alias); 3 May 2017 11:35:47 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 26371 invoked by uid 89); 3 May 2017 11:35:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy=STORE X-Spam-Status: No, score=-25.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: EUR03-DB5-obe.outbound.protection.outlook.com Received: from mail-eopbgr40124.outbound.protection.outlook.com (HELO EUR03-DB5-obe.outbound.protection.outlook.com) (40.107.4.124) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 03 May 2017 11:35:35 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qtcompany.onmicrosoft.com; s=selector1-qt-io; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Gg6NkdWBE7w+MGHrDoGm5Zj6p4yjEtjQN1oEqx7iwAs=; b=F5Bkv7SKLwBWD+ghLYvFOs6mKur3AWMSSRds8IWfnhlYEbtaX8xD1KM/gX/8vYikzwLviEdP1aV/tFdh8OEAqgsKHdk0v9+wI9mZY1B5x2z/l+Ab6dss+jFnlsSt1odOF3CYtWo4CWS1ocIt1QD2Av8KsWZ3icMoZ6Gcu1r3Ozg= Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=qt.io; Received: from [10.9.78.56] (62.220.2.194) by AMSPR02MB230.eurprd02.prod.outlook.com (2a01:111:e400:8022::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.12; Wed, 3 May 2017 11:35:33 +0000 From: Ulf Hermann Subject: [PATCH] Make sure packed structs follow the gcc memory layout To: Message-ID: <105869cb-f4bf-4ac8-83c3-f969decd2735@qt.io> Date: Wed, 03 May 2017 15:47:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [62.220.2.194] X-ClientProxiedBy: HE1PR03CA0042.eurprd03.prod.outlook.com (2a01:111:e400:5351::52) To AMSPR02MB230.eurprd02.prod.outlook.com (2a01:111:e400:8022::17) X-MS-Office365-Filtering-Correlation-Id: a89473d4-c9f0-4610-ccd8-08d492188293 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:AMSPR02MB230; X-Microsoft-Exchange-Diagnostics: 1;AMSPR02MB230;3:YOUqsmBWmm6umbVQiuM3o+52K4XvcxZSqwiiH4nzyl9QjhpxxUxIhPIlLN8g+/MjdayvPHnxadFEYOLOAeh6UWKCHJv0Hh3W17gnajK334xXjVpDtN1HECEChmiIRqKMJm/8wEsRjmlahFQGKj+Khzk9K6nP+oDo7R/Vebm/qf5tj56UHz0cEjSLhsnvIRiW6eBfTY/dED+JTSYBEkmy87owH18AHJYnfoIc0yvElDe4F1/oDSwg0UQCqZJD84qm0Fk1viaUZLaugbqB3pU9uCA8JDsXnR6pSgRSvHIVL/6PBZloq9+NIQaeVvKoHnGvNqmCAdX4W4WyIwS0Tkj3tw==;25:V3EMXnzY75m3yWr/2w5Zk6ffqQeC3+bDUt+qEbR+HfFWoCd/XnEIDBxBvh6cW1suRjsX4uMGOfzjWQCMkHeCGVieim3iIDGEP5/5uiXhkyDeyC3rX9CVJV6YQBXRNpIdXNEWFpkPdUv/yqNldPpmxXseJixGnN7K6cSsnpud4Z9qjQ6td8OTJX1VAoHwfuJ83U0wmGJnjPmMtmt6+mf43UXsZbKSjg7vsRHLcTSojhII0VZyttPIWZQ5uE8wXSnD+/hNkbSfJskwq3O9L0YFzFl8Uzbohhw4W0jIboGld77gP2qygnZPTNKnpg0rw4sSNTugpISvATjhK8ZKRF/Zo2M/i2R0AI3iKz/hYsdIHR4f1WUHkQuuzeLTlCV1SFgho7VEXoeBrqbQKLe+kb/hA8+oJPjTt7CbcKloVf0+3IUlkDmVCPxOdVpWltJ2CwKMo3PtmOlZJjopRg+LpC+D9g== X-Microsoft-Exchange-Diagnostics: 1;AMSPR02MB230;31:5/zqXbEa2zI47C2BrDkAXnm0/ejkbuf/l61djBZ0705YbPOKbm64juHWdFhUWcs8XiiiVwGSVEd88t4HUiZqkXnPgfpC3/HyXy/OslHU1fAlVJM3/TahkK7k9z31tZPHhx52O8HEUq42RGGVPGgqoJITDRpMAIk0TzzBHqHQLsjdlPGR2CTEaHOtehvYESe4C1yNEIabBVrJh8NfBN9/J0D+rV9d6mMrbJlwPbETiHega1TRxx/kYa9YdAQyq04xUsJxiSAsOxJ5mibehDHNPBzKXvGim70yaHuKU6pqCDU=;20:DROhoIiRhrQxKpPrg+h8bA/m1lI+Q1FIVnFo6oTrKRyQMFz0u16c6JeoTtUUIRfvJbEtAP+s9LgWb0nqeSYzaOqOfwrl35Y1VWpPBxJp2EgD23R+YUT/Ag5OtxhtGaaND085y2e1V8KhIhCtQyAgkuK81Gb4bdgGP4uXKEHw8bQS8Iob3AUVscJQj+t6DPLrococb1ZpxCKVtyoEet4KBf+V1PnNQ7I2o38cSs+cX9iVRCLDuFI+IVvvWkRdUQRu X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123560025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(20161123558100)(20161123555025)(6072148);SRVR:AMSPR02MB230;BCL:0;PCL:0;RULEID:;SRVR:AMSPR02MB230; X-Microsoft-Exchange-Diagnostics: 1;AMSPR02MB230;4:MsDRJF4k3bpe28I9G4UeJNNe7lDaXeVtvMGUbEM8Jsg35p4UfcQVZqzSsIKkAS1o4KYnQPn/cVTtZ3VhZbCH6CWe2vA7nWS8zFWbl4rlSyXi6X7v9F2yJMZ5oGhfGUm/XbBhYmsfhMqY3UBk5I+rtWHGMbosT5B4sa5fjQSi9/42KNh4d3eGnoUR8wjp24K6ghMoftVS7izEYqPdIpcd/pyqRXnhYdfqJAeR7YDGwvBj+5x/3m2XGvShXsUox+dseuWXRMVBI1zACqX6exirseFI3PdyZcCevtSMEoBywfJFvuOpNKi0m5f65E2Ra67t4nFmCobItzed9Z5RxC8jD++2oEunSOVR/NQ6zlZ2kzXizPXm3hRUXVvTA89hIMHmLqC/m39AckTWG1Nt7fbOXZp6OTlsjVEsEvS0SufNPdCRcvE6rU3O/AmW8Bul+61YHW/xeSaJidliHMOzYjl8dCCY7pN0dzeFgw1MzL/fE7uj+yimGx2+hHNlOmyp0CZtpIRPM94F18xBfnE4GqyR6DeQW4F6nNQoq8bVdXd8lmDAiuyNMqMIa0DgmCOIUOz22trLf5grrHGE0xIsdoHRQpvmzsp0TeqCpk2rulbNI1VNJXI7wVzjcKGHeZj7AVxhyLgyAzJOy7DRqnCVYRyAi6KmLGZkM+tnow8xjpPQgCzWra+KOCwrO8c74IxcOWlPYP1pUjtWXyEJ/K5JSbHJd8lNvKFhYyNiC3BIimjXnr1Os+EAZEfmuJ3oXgsL7B0qtSkfMp3em+EEGKRFZytpEYNteH3LPrJkOEJ3Za5DpsA= X-Forefront-PRVS: 029651C7A1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(39450400003)(39840400002)(39400400002)(377424004)(54534003)(8676002)(189998001)(50466002)(6916009)(2351001)(50986999)(74482002)(33646002)(54356999)(23676002)(36756003)(3846002)(81166006)(230700001)(42186005)(6116002)(2906002)(77096006)(305945005)(4001350100001)(7736002)(66066001)(65956001)(65806001)(478600001)(65826007)(83506001)(575784001)(110136004)(53936002)(86362001)(31696002)(47776003)(5660300001)(38730400002)(6486002)(25786009);DIR:OUT;SFP:1102;SCL:1;SRVR:AMSPR02MB230;H:[10.9.78.56];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTVNQUjAyTUIyMzA7MjM6MEtwMjN0ejdISUZ4aGJueFZMdGVXSUJwTE1C?= =?utf-8?B?ZWh5K0xBdWVHRExWU3FobVZGaGtWdHlac3pyYXVHUWxjc3pVOCsrMURZUEVK?= =?utf-8?B?T1k0dXpQOTBaRktrejE5aDZQdW9pUmYyTmRNT3F0dG12anFLTGhWU3V3cnJw?= =?utf-8?B?RDRYUm1DUjdrNE5RRDl3aTd1RHlYS2lZakk3Wmo4eTRrSVo0cjhyTUt6OGRy?= =?utf-8?B?M1V4eldkdTRmaFpsdzdGbzdjQkRHekp4bTdtWGEyZ1o3NjNEVDY1YlZVKzdw?= =?utf-8?B?TGhiU1NkNVNjVXpTeG1QSG45N2oyL2NXWnBZR1hyQUgxR01aczUrclR2RGcr?= =?utf-8?B?RERSVEdUNVBZZGxNL09pWWpicEhKaGpoeGF3Z05aWnR2YWVJN0VieGt4dzQ3?= =?utf-8?B?R2gyL3ZJaTEwbzlRSDg5VENXMlNDcXRTZWpLM0dlUkxmcmoycjFkRHhjWVZW?= =?utf-8?B?YUNRcFZuYXphb1BTZDZDL0FkalQrVWcxb0RidmFSMEpHS2NmajI3QWhQS1dj?= =?utf-8?B?aGNaL2JPN3AxeEtkWlRpeDRRVVRmUExBcnByUUgxSWZIM0dlRkViWWlsZ1RD?= =?utf-8?B?ZVFsOFpFclNsOWxxN0NkZiswcXdWMUlvWEthaER5QkdjRXB1bWJ1ZHFaYlJ0?= =?utf-8?B?a3hGbktOVVdaRVlEZHJNYmk3NktydldtUHIrWEpHZzZ3SFBhd0JnL0NkOHJi?= =?utf-8?B?c2lKQVhpb1dlOEQxdFB3SzVXazFKK0ZsMlgzeDVEdTNnYlAvd0VUUkpTYXFV?= =?utf-8?B?SHhYZGRKd3hIZ3IwTGtiYjdIb3NSM1VYdlhjRXRranpKWmtWZU8vWWRhaHZM?= =?utf-8?B?ZksvOEIyMy9tTjlLa255a3RmSE5yaVlSWjQ4K2tVL08wNTZ1cHJlcEw0L3dW?= =?utf-8?B?UDBlT3RNdXJuVEJVc3BvdXpTdk52bnpaWjliTGoxYW45OVlkMDM3Y21qajlO?= =?utf-8?B?TnJ4NHRndU5YK2w0a0xiUzlzTHVJUkFlK0xnaTRBcjJLcW5TZXFpanBHeEhJ?= =?utf-8?B?YkxqamlVZWozdGplcDNVOHdRWlpqUkRmdkNGTjljU1dvQVR6OGlpMUEyaVN5?= =?utf-8?B?S0w0VXdFZFFCTTRLS1JyVzlQM1VURGRGTWhlYmxWOTBHYnF4U2pJWGI2M2Fi?= =?utf-8?B?YUJaWmVZdUxmTGNRY211UUo5OEYwd2xsYUpZc0tPNG5tbjVTS1pNbmRQV1Jj?= =?utf-8?B?Y1F3VEFZbXBzTjlBZTQyRnR4S0d3M3NncVZWUEpGamplY1RkbjBMU1hmS1JN?= =?utf-8?B?bU1MdXRLTVRaNEZGNENXeGs5S1ByOWRSbDJyTmN6Z1NzODhLcGZXTVFpaEUx?= =?utf-8?B?cVp1NGg4RFo2TXlQSWpqNEJGSEZlMVJxUnduT1JydmN2ZU1Cb1FVR2IxRlJB?= =?utf-8?B?L3lXd2crSXRvVGRNL1Q4VHYxdS9Xc0k1b042aHoyRG53WW8xK0p4RnFDeHBZ?= =?utf-8?B?RWI5bEMwemUzZnFZUUVQVTc2QW9DL3RBNDg0TkhmSE5lZk90Qkd6TSt5c3lv?= =?utf-8?Q?JGPbwAyjLzo/b9vl+pzKHqE1GjvGtTaz1znc1gxpzg6HN?= X-Microsoft-Exchange-Diagnostics: 1;AMSPR02MB230;6:tek34ugiYw9/9nA6Xo6gKFK5MMoQ8SzLlxnI31ig9S7MWLZ2vJAxiVh3rndjSTJRG5yCZj69aSiGLCccirE85yBaW0KeTyBuDFBaYXth9pnRLTp+LsoTIx11xfzH2UHcDy5BKPXU1eHSvyP79uGpaDkJ7m2T191mk6DXl74iN/BvuM3H//Nxruct+O/SsvZsy61f7/EXV5rDlAkCSoj2xYPH6u8Q9M6XikN+ycDnPsqUcaDB2jTKiIbmqL3n4PGOpcbbSOJ8L1OpAworQBqyuYMkJZCAGkioYipk5lKUJGctoLJWYDJre6tjy7FVvlla9OtqimpGPwJT/AXVkNj+yvXlRRuD9dNaWwQkudDPkmW0n0vdNdxglcPzX9aV8beaPWRnINM80SuE8IEP8BgMbBvt258FxWKHU+cQn75trTPz6ZU+f9R3rQ0d43TrPFDNNwUjFRNApfh9RuF+ko7JBTbqYr1VZPzQymFbG70Kiwk5HcTwM4vvRYYNyZprwJJQMZD9XhQb+YcypTTNpl6qEg==;5:YQgcfrjZd0jkY0RYgIDb6hhwB8E2lD36ZK4jELkj3IG5q/hKlGvbkCxfze5MWlTR1/S+ON5XiAMYtvw97CjevjC6rP9qz2iknpFnB5EE467TRtuUmv4tv70T28NwBEd2NHxHqp3sBzDkbul8+Pt6qg==;24:nOv4alNjXUuT0y0fpwmOIiPHcMNk0CvVx3NYIX4I0M8mn1Y8PGLs5rpOjiID11oq0Sc+naHchmaRH8viQ2UqNS8l2KpJolBIe22a6vAkLL8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AMSPR02MB230;7:tugRmNFuYSr8e0pn0ZHdnhXlu+CftBGy8+RNjH0vQl8YsGEuK6PGQsJNEqviavNtw6p1z8JlJ61DxLSoiNKpnct+DGkxl9Uw+qRv/elYBrgj1xmodnUTt+JgwKsOqYpwqGPHoE2/v8GvrRZGUzaRFW9Ipo5no901vwPp7msUUDQQn3Qghs/ernG/uOhlmjneXlLWZ7cB+q9s1CNkram4rBEjjceAInz8b7C+hRZzo6+f+d8eJ578TAqFdgszkC2MhUJ5eIaIOUb6jSH8GHIb6zpRHmXkvDgBhmL1PMhb5Rls/yjswLG8IK+1tOKilj9hxJySBhR+WJP4w+E2BlYzJw== X-OriginatorOrg: qt.io X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2017 11:35:33.1333 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AMSPR02MB230 X-IsSubscribed: yes X-SW-Source: 2017-q2/txt/msg00143.txt.bz2 On windows gcc by default generates code that follows the MSVC layout. We don't want that as it adds extra padding. Signed-off-by: Ulf Hermann --- ChangeLog | 5 +++++ backends/ChangeLog | 4 ++++ backends/linux-core-note.c | 2 +- configure.ac | 13 +++++++++++++ lib/ChangeLog | 5 +++++ lib/eu-config.h | 8 ++++++++ libcpu/ChangeLog | 4 ++++ libcpu/memory-access.h | 2 +- libdw/ChangeLog | 4 ++++ libdw/memory-access.h | 2 +- libelf/ChangeLog | 4 ++++ libelf/gelf_xlate.c | 2 +- 12 files changed, 51 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index eaea959..392efaa 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2017-05-03 Ulf Hermann + * configure.ac: Check if the compiler supports + __attribute__((gcc_struct)). + +2017-05-03 Ulf Hermann + * configure.ac: Add check for -rdynamic. 2017-04-28 Ulf Hermann diff --git a/backends/ChangeLog b/backends/ChangeLog index 8985f7c..caefcf4 100644 --- a/backends/ChangeLog +++ b/backends/ChangeLog @@ -1,3 +1,7 @@ +2017-05-03 Ulf Hermann + + * linux-core-note.c: Use attribute_packed. + 2017-04-06 Mark Wielaard * i386_unwind.c: New file. diff --git a/backends/linux-core-note.c b/backends/linux-core-note.c index 67638d7..08282ba 100644 --- a/backends/linux-core-note.c +++ b/backends/linux-core-note.c @@ -111,7 +111,7 @@ struct EBLHOOK(prstatus) FIELD (INT, pr_fpvalid); } #ifdef ALIGN_PRSTATUS - __attribute__ ((packed, aligned (ALIGN_PRSTATUS))) + attribute_packed __attribute__ ((aligned (ALIGN_PRSTATUS))) #endif ; diff --git a/configure.ac b/configure.ac index e45584e..e4b2946 100644 --- a/configure.ac +++ b/configure.ac @@ -185,6 +185,19 @@ if test "$ac_cv_visibility" = "yes"; then [Defined if __attribute__((visibility())) is supported]) fi +AC_CACHE_CHECK([whether gcc supports __attribute__((gcc_struct))], + ac_cv_gcc_struct, [dnl +save_CFLAGS="$CFLAGS" +CFLAGS="$save_CFLAGS -Werror" +AC_COMPILE_IFELSE([AC_LANG_SOURCE([dnl +struct test { int x; } __attribute__((gcc_struct)); +])], ac_cv_gcc_struct=yes, ac_cv_gcc_struct=no) +CFLAGS="$save_CFLAGS"]) +if test "$ac_cv_gcc_struct" = "yes"; then + AC_DEFINE([HAVE_GCC_STRUCT], [1], + [Defined if __attribute__((gcc_struct)) is supported]) +fi + AC_CACHE_CHECK([whether gcc supports -fPIC], ac_cv_fpic, [dnl save_CFLAGS="$CFLAGS" CFLAGS="$save_CFLAGS -fPIC -Werror" diff --git a/lib/ChangeLog b/lib/ChangeLog index ecc6179..6c0ac6d 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,8 @@ +2017-05-03 Ulf Hermann + + * eu-config.h: Define attribute_packed to be either only + __attribute__((packed)) or to include gcc_struct if available. + 2017-04-27 Ulf Hermann * eu-config.h: Define attribute_hidden to be empty if the compiler diff --git a/lib/eu-config.h b/lib/eu-config.h index 0709828..135803e 100644 --- a/lib/eu-config.h +++ b/lib/eu-config.h @@ -75,6 +75,14 @@ #define attribute_hidden /* empty */ #endif +#ifdef HAVE_GCC_STRUCT +#define attribute_packed \ + __attribute__ ((packed, gcc_struct)) +#else +#define attribute_packed \ + __attribute__ ((packed)) +#endif + /* Define ALLOW_UNALIGNED if the architecture allows operations on unaligned memory locations. */ #define SANITIZE_UNDEFINED 1 diff --git a/libcpu/ChangeLog b/libcpu/ChangeLog index ef5da58..a50a87b 100644 --- a/libcpu/ChangeLog +++ b/libcpu/ChangeLog @@ -1,3 +1,7 @@ +2017-05-03 Ulf Hermann + + * memory-access.h: Use attribute_packed. + 2017-02-27 Ulf Hermann * Makefile.am: Use fpic_CFLAGS. diff --git a/libcpu/memory-access.h b/libcpu/memory-access.h index 44210e2..779825f 100644 --- a/libcpu/memory-access.h +++ b/libcpu/memory-access.h @@ -90,7 +90,7 @@ union unaligned int16_t s2; int32_t s4; int64_t s8; - } __attribute__ ((packed)); + } attribute_packed; static inline uint16_t read_2ubyte_unaligned (const void *p) diff --git a/libdw/ChangeLog b/libdw/ChangeLog index 0d94ad5..f4b9dfb 100644 --- a/libdw/ChangeLog +++ b/libdw/ChangeLog @@ -1,5 +1,9 @@ 2017-05-03 Ulf Hermann + * memory-access.h: Use attribute_packed. + +2017-05-03 Ulf Hermann + * Makefile.am: Output dw.def when linking dw.dll and create dw.lib when installing. diff --git a/libdw/memory-access.h b/libdw/memory-access.h index a749b5a..afb651f 100644 --- a/libdw/memory-access.h +++ b/libdw/memory-access.h @@ -170,7 +170,7 @@ union unaligned int16_t s2; int32_t s4; int64_t s8; - } __attribute__ ((packed)); + } attribute_packed; # define read_2ubyte_unaligned(Dbg, Addr) \ read_2ubyte_unaligned_1 ((Dbg)->other_byte_order, (Addr)) diff --git a/libelf/ChangeLog b/libelf/ChangeLog index 8dfa2b7..52f69e7 100644 --- a/libelf/ChangeLog +++ b/libelf/ChangeLog @@ -1,5 +1,9 @@ 2017-05-03 Ulf Hermann + * gelf_xlate.c: Use attribute_packed. + +2017-05-03 Ulf Hermann + * Makefile.am: Output elf.def when linking elf.dll and create elf.lib when installing. diff --git a/libelf/gelf_xlate.c b/libelf/gelf_xlate.c index f3d3b7a..479f143 100644 --- a/libelf/gelf_xlate.c +++ b/libelf/gelf_xlate.c @@ -74,7 +74,7 @@ union unaligned uint16_t u16; uint32_t u32; uint64_t u64; - } __attribute__ ((packed)); + } attribute_packed; #define FETCH(Bits, ptr) (((const union unaligned *) ptr)->u##Bits) #define STORE(Bits, ptr, val) (((union unaligned *) ptr)->u##Bits = val) -- 2.1.4