delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2023/01/26/18:53:45

X-Authentication-Warning: delorie.com: mail set sender to djgpp-bounces using -f
X-Recipient: djgpp AT delorie DOT com
X-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20210112;
h=content-transfer-encoding:in-reply-to:from:references:to
:content-language:subject:user-agent:mime-version:date:message-id
:from:to:cc:subject:date:message-id:reply-to;
bh=pehZUjUj3ZvPavt+eI6J/Rqbpjpyx9mE+nbW0CI4rkI=;
b=cNVa2/xfcn1RXGZcW3fXTnv7CX/JvLF7ndKh6Db5CuE7B7g/yCMAaG5Kl3fnHvIYzq
jt03botrBraHGVmiR3HBMZVkGDh8UmLc7eKdTta2M5ix430msPPCQODjGuS5r4dsxJP6
aVmBfpLD8ry9tVByRNWAbIY8k4UZziLIOG9Lct+BJZo8ELLeJfT77KCVeWlmZ8Z8eMep
CUQ8rnjao9OHqUDH2mCcjoqr5saeTL/+3Ql5+lFhxXRysSyFvEwekw2QF14u+Oz3esvr
qBn8MeUvVdP0Ehf6Exy2h1wFa6f7kd1kL7B86PGWQMzOIZU49WDrziSTaSJ1kopaII9+
ZjqA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=1e100.net; s=20210112;
h=content-transfer-encoding:in-reply-to:from:references:to
:content-language:subject:user-agent:mime-version:date:message-id
:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;
bh=pehZUjUj3ZvPavt+eI6J/Rqbpjpyx9mE+nbW0CI4rkI=;
b=AlZ959B3PQlIG5Ww9eVjSl1j/43Z7udT3QZRC9rqVtj67+Drs4MsRXwqqpOBlzAYlt
oNmszOf/OacVx1XffGxZORBAwl/cJ4wNz6IdoKOK4wScJ0TbcyEVf9o2wHv519ns/oem
xlQ/exX0tB7GnWFZjGSN+YkmK64ULmrPax1+DEg89qyOHqD8CXmmgK1rDfFCHtthtfis
PJGM9qRuwKzpMU8ddcRAwxV1pVSzvekH0EMUBZlK2wZcA3ARyxIKERQm1YkEDWYtXAUo
+KdRHLs1YAiMrQdG4nlRJfEmyRHY0jU0GpVV893bARF/DyzYrJkt0z+qzgbN4oCekA86
lIZA==
X-Gm-Message-State: AFqh2koPUxPv32DqzHVDlwZ2SwmBiSmm9vXX/VDj7N4y8hjzlCd1U8fK
HfRsoW+hW1+WsdSTvZ950r+C0ccRyEhZtw==
X-Google-Smtp-Source: AMrXdXvvxiNzSopJj9jYO0DwtRPNX6Tf6sFy/rErUpoQbzN245+WmSCkMybfqH1szf81mOcU2LMtiw==
X-Received: by 2002:a05:6402:3786:b0:499:8849:5fac with SMTP id et6-20020a056402378600b0049988495facmr42580249edb.40.1674777023758;
Thu, 26 Jan 2023 15:50:23 -0800 (PST)
Message-ID: <3d9271ae-266d-ee7b-853b-984857ced1c8@gmail.com>
Date: Fri, 27 Jan 2023 00:50:23 +0100
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.6.1
Subject: Re: DXE3 with std::vector
To: djgpp AT delorie DOT com
References: <edefcfee-d1ce-415a-8d1d-525a660fb0d5n AT googlegroups DOT com>
<63a56722-21d6-a368-6400-907f0cf9d01c AT gmail DOT com>
<CAA2C=vCduRPA7Ky-kDqs=QtO-qi=DQczM6FMHhB+=Ltof54P=Q AT mail DOT gmail DOT com>
<c934abb6-c11e-0087-cd32-365d25d3f154 AT gmail DOT com>
<CAA2C=vCHMXDD8iewRStieHyTcgjGF3=d29LmMT53vrzGYe+zMQ AT mail DOT gmail DOT com>
<CACuL_+CZm++qhEr7PedDmQaTxjZu9d-rVSw1bgPeist7XZ+dpQ AT mail DOT gmail DOT com>
<CAA2C=vDPwv5G9DeFKyKFqt39cDDmO4LmDtbtMyoMdRR2xeEkow AT mail DOT gmail DOT com>
<3b8f674c-bca3-c679-952e-f8ba5af196e7 AT gmail DOT com>
<CAA2C=vBptnTAy2TA-pj5JCbAUJMiXkAAoP_xYFZZJ99iB7v9mQ AT mail DOT gmail DOT com>
<500850be-fd64-3f82-a1e1-929903084e9b AT gmail DOT com>
<CAA2C=vA0zXX3Sb49WBzU5g1-8dmO5G5wrb3uT+tLRq2LB0wu5Q AT mail DOT gmail DOT com>
From: "J.W. Jagersma (jwjagersma AT gmail DOT com) [via djgpp AT delorie DOT com]" <djgpp AT delorie DOT com>
In-Reply-To: <CAA2C=vA0zXX3Sb49WBzU5g1-8dmO5G5wrb3uT+tLRq2LB0wu5Q@mail.gmail.com>
Reply-To: djgpp AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

On 2023-01-26 23:42, Ozkan Sezer (sezeroz AT gmail DOT com) [via djgpp AT delorie DOT com] wrote:
> On 1/26/23, J.W. Jagersma (jwjagersma AT gmail DOT com) [via
> djgpp AT delorie DOT com] <djgpp AT delorie DOT com> wrote:
>> On 2023-01-23 05:00, Ozkan Sezer (sezeroz AT gmail DOT com) [via djgpp AT delorie DOT com]
>> wrote:
>>>>>> Just seems wrong to have to copy
>>>>>> important libs like that?
>>>>> That's a shortcoming of dxe3gen with gcc-provided libraries,
>>>>> needs to be addressed but no one cared (or no one reported
>>>>> the issue probably.)
>>>>
>>>> Any possibility of you being able to generate a patch or can we get
>>>> it into documentation?
>>>
>>> The thing is, dxe3gen invokes ld, not gcc.  gcc is a front-end to ld
>>> and handles any such ugliness behind the scene and doing the same for
>>> dxe3gen might be a real pain.
>>>
>>> If someone other than me can generate solution for this, or at least
>>> some documentation, it'd be nice.
>>
>> Seems stubify does not delete/overwrite the input file if the file
>> extension
>> is something other than .exe, so calling stubify isn't so disastrous.
>>
>> I have a preliminary patch, attached, untested.
>>
> 
> So, you invoke gcc instead of ld,
> 
> - removal of -X: O-OK, default anyway.
> - removal of -S: Are you really sure?
> - removal of -r: Don't think that it'd work.

Those are in ld_args now (-Wl,-X,-S,-r,-T,dxe.ld), gcc splits it at the commas.

> - removal of assembler for import lib
>   generation: Don't think that it'd work.

The assembler is invoked via dxe_cc (gcc -c) instead.

> Just tried the patched binary with a dxe build project, it fails
> as expected:
> ./dxe3gen -o sndpci.dxe -E _AU_ -U au.o ac97_def.o dpmi_c.o mdma.o
> pcibios.o sc_cmi.o sc_e1371.o sc_ich.o sc_inthd.o sc_sbl24.o
> sc_sbliv.o sc_sbxfi.o sc_via82.o tim.o udivdi3.o
> dxe_tmp.o: linker output file has more than one section

Getting multiple input sections sounds like some problem with the linker script.
Do you have an open-source project for me to test on?  I'll admit that I've
never used DXE libraries before...

I tried it with a basic hello-world that uses std::vector, and got a long list
of unresolved references.  But I get the same list with an unpatched dxe3gen.
It does make a .dxe file with -U.

- Raw text -


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