From patchwork Mon Jan 13 10:53:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Marc_Poulhi=C3=A8s?= X-Patchwork-Id: 104680 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 28AF63857BB0 for ; Mon, 13 Jan 2025 11:12:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 28AF63857BB0 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, secure) header.d=adacore.com header.i=@adacore.com header.a=rsa-sha256 header.s=google header.b=XYLBrZZg X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id A5EF93857810 for ; Mon, 13 Jan 2025 10:54:13 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A5EF93857810 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=adacore.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=adacore.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A5EF93857810 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::433 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736765653; cv=none; b=hPArpnXsjwOTu0o2UYbdoOPFqc5qsJNzQubBGoBpWupvARX8Ot09zxvh9XI6H8+BKrN0eEbnHqnR8qIsy18zaIBSJfHCRRJHiiDLEH7ATR0GPiSIjMfKtGtAUt0DaslS4tgUpjprR8UUMrSXopfRtnAh7hL1HZvGZOrZKG4xHEQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1736765653; c=relaxed/simple; bh=34N/sPInvuAH+BwfN5TChGkjR710RB6CEmboZwHmWeQ=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=l/m57UO0HBun+7h7HBxJAUMkynEfUY8iNbiIWLP7A/lsfuOMhLq4PTEGtyvY9O30y8U+cjxMOlOc6gnMH4BlbjgSihIuV790l8G1Nn9xhu5ttbwuzyoDFBZnza4fSQrl+Y+TMEq251mNZbmeySNw2Pabjt1t70l20hd/PGdau6c= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A5EF93857810 Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-385de9f789cso2975441f8f.2 for ; Mon, 13 Jan 2025 02:54:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adacore.com; s=google; t=1736765652; x=1737370452; darn=gcc.gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=pCiEkRCjn91IJbzMaw6AENc7aiT+6FyF8oTiGHJejFU=; b=XYLBrZZgcNCGFUl0KVYJ9JVI8KxeUuD9qUmDn/nZ34MlkyHtBqX4/ow5zDZCZVizSK 6N28vEmFjb9WaXjv97+jcV6WRwUjYXGbnaYB+OLxt8Efm9lT50hIdfCUJrnCCrQ/TieT RLrnV1TDRL4O8gbBUQMepYluLo9yiY73VUvnqkDRC19r7bbe7/H8F4iPybpXXy044bJY ujJOdHVvEI9oQ2m9LLuDuURcxGs0jh6l0OKSo4f/suYK9ZaBNSKkdDrF724bPRkDvs0N oR99srS0X/wev7zPVS6Mb9F4kw1pXW/UKy7/92gPklcWPfcV/jJ8TPu2bQDiATLn8w/Y weFg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736765652; x=1737370452; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=pCiEkRCjn91IJbzMaw6AENc7aiT+6FyF8oTiGHJejFU=; b=LFcUn03wL3pzb4zrcR/HFr9DltjaOZN4GgxikVQ9+kEoC1+hFL3TbOZxVvCcKDepb0 KUpHqWOuSjIj4T+RLGSy/VpH8JqCW5q/ztI/C0wNgX7CxcgWG5l0UOE2oupOpRzSoqG8 mCy6HASY7EnzwD4eiyLH0mfD0GE2vEG2eGXme5b5Ea8QGppVtYbdf4gHUeDxzPwIDPbp 8+nKJvvOBPrVo7octs/x0wDkqkdQTk5aukeRxEbKzQG2wq/tYbWv2BOmvk3tWJz6o2jP WruD5yA0X2UKmDksg3kRGFNawa04AzOJtg3+sl52E6LXE0C+92hjQz85QNHEdx5NXbaN SXcg== X-Gm-Message-State: AOJu0Yxz7mhARdM4NXje8IK0pf3/d4K0f+LIElSPRHaeWkkppQgoCizn OPVUhnMLpX/k/XmdBYldng+P9VBZy+8VE5/1vWX3SETvNT0xn4xjphjuUgczvcUh1Ck9bQ7z4A4 = X-Gm-Gg: ASbGnctJ0TBgQRksBJrj5UjwfcohP94KKGzGkg6sapqS1QU1bNmiDAAEy67d7UjvVcx jm5YMv4lMNf2eAnceEbYpd2daVf4BHL/9UhL+BWWEnmJUtXrCUG/H+lNQQZAxgKmXiYFbD8YhhB z1N9lvlEf8x1na5kDyzEr/ZGONlaxGj477mjkDfi9CC415WjrLVsRSVW5fFAqQqxrUR/GDiZtCb YwoViVAdEPJhqASigAXLqpZGExkVRZBfo3DoXoqO0AAfZ7x+42AiiFblD0J9MkBflkpuciud12g 6K/wTpgPx3WnmTVY2ewchir/NP03o2eC6tRSMOBaSPeAQHpQon76DZcoHMGoE+Rs+WUnuShv X-Google-Smtp-Source: AGHT+IFwPyVcAfjJJRlENiFIG+VY9ri/5NZNcKEP0YMO4hLyWL4X98nXQdbnwzXNm5GwKW2xeOiMIQ== X-Received: by 2002:a05:6000:460b:b0:385:dffb:4d56 with SMTP id ffacd0b85a97d-38a87317e45mr17061762f8f.53.1736765652266; Mon, 13 Jan 2025 02:54:12 -0800 (PST) Received: from poulhies-Precision-5550.telnowedge.local (lmontsouris-659-1-24-67.w81-250.abo.wanadoo.fr. [81.250.175.67]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-38a8e3834fbsm11709138f8f.26.2025.01.13.02.54.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 13 Jan 2025 02:54:11 -0800 (PST) From: =?utf-8?q?Marc_Poulhi=C3=A8s?= To: gcc-patches@gcc.gnu.org Cc: Pascal Obry Subject: [COMMITTED 12/14] ada: Fix relocatable DLL creation with gnatdll Date: Mon, 13 Jan 2025 11:53:45 +0100 Message-ID: <20250113105349.928779-12-poulhies@adacore.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250113105349.928779-1-poulhies@adacore.com> References: <20250113105349.928779-1-poulhies@adacore.com> MIME-Version: 1.0 X-Spam-Status: No, score=-13.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces~patchwork=sourceware.org@gcc.gnu.org From: Pascal Obry gcc/ada/ChangeLog: * mdll.adb: For the created DLL to be relocatable we do not want to use the base file name when calling gnatdll. * gnatdll.adb: Removes option -d which is not working anymore. And when using a truly relocatable DLL the base-address has no real meaning. Also reword the usage string for -d as we do not want to specify relocatable as gnatdll can be used to create both relocatable and non relocatable DLL. Tested on x86_64-pc-linux-gnu, committed on master. --- gcc/ada/gnatdll.adb | 8 +------- gcc/ada/mdll.adb | 13 +++++-------- 2 files changed, 6 insertions(+), 15 deletions(-) diff --git a/gcc/ada/gnatdll.adb b/gcc/ada/gnatdll.adb index 8881fc91ab4..0faf79f361b 100644 --- a/gcc/ada/gnatdll.adb +++ b/gcc/ada/gnatdll.adb @@ -134,10 +134,8 @@ procedure Gnatdll is P (" -l file File contains a list-of-files to be added to " & "the library"); P (" -e file Definition file containing exports"); - P (" -d file Put objects in the relocatable dynamic " + P (" -d file Put objects in the dynamic " & "library "); - P (" -b addr Set base address for the relocatable DLL"); - P (" default address is " & Default_DLL_Address); P (" -a[addr] Build non-relocatable DLL at address "); P (" if is not specified use " & Default_DLL_Address); @@ -315,10 +313,6 @@ procedure Gnatdll is Must_Build_Relocatable := False; - when 'b' => - DLL_Address := To_Unbounded_String (Parameter); - Must_Build_Relocatable := True; - when 'e' => Def_Filename := To_Unbounded_String (Parameter); diff --git a/gcc/ada/mdll.adb b/gcc/ada/mdll.adb index 281f6a97e5f..64350ff2ec3 100644 --- a/gcc/ada/mdll.adb +++ b/gcc/ada/mdll.adb @@ -77,10 +77,7 @@ package body MDLL is Bas_Opt : aliased String := "-Wl,--base-file," & Bas_File; Lib_Opt : aliased String := "-mdll"; Out_Opt : aliased String := "-o"; - Adr_Opt : aliased String := - (if Relocatable - then "" - else "-Wl,--image-base=" & Lib_Address); + Adr_Opt : aliased String := "-Wl,--image-base=" & Lib_Address; Map_Opt : aliased String := "-Wl,-Map," & Lib_Filename & ".map"; L_Afiles : Argument_List := Afiles; @@ -133,7 +130,7 @@ package body MDLL is -- 2) Build exp from base file Utl.Dlltool (Def_File, Dll_File, Lib_File, - Base_File => Bas_File, + Base_File => (if Relocatable then "" else Bas_File), Exp_Table => Exp_File, Build_Import => False); @@ -148,7 +145,7 @@ package body MDLL is -- 4) Build new exp from base file and the lib file (.a) Utl.Dlltool (Def_File, Dll_File, Lib_File, - Base_File => Bas_File, + Base_File => (if Relocatable then "" else Bas_File), Exp_Table => Exp_File, Build_Import => Build_Import); @@ -223,7 +220,7 @@ package body MDLL is -- 2) Build exp from base file Utl.Dlltool (Def_File, Dll_File, Lib_File, - Base_File => Bas_File, + Base_File => (if Relocatable then "" else Bas_File), Exp_Table => Exp_File, Build_Import => False); @@ -247,7 +244,7 @@ package body MDLL is -- 4) Build new exp from base file and the lib file (.a) Utl.Dlltool (Def_File, Dll_File, Lib_File, - Base_File => Bas_File, + Base_File => (if Relocatable then "" else Bas_File), Exp_Table => Exp_File, Build_Import => Build_Import);