Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

Happiness is a hard disk.


computers / comp.os.vms / Linking problem with multiply defined symbols, how to resolve?

SubjectAuthor
* Linking problem with multiply defined symbols, how to resolve?Richard Levitte
+* Re: Linking problem with multiply defined symbols, how to resolve?hb
|`* Re: Linking problem with multiply defined symbols, how to resolve?Richard Levitte
| `* Re: Linking problem with multiply defined symbols, how to resolve?hb
|  `* Re: Linking problem with multiply defined symbols, how to resolve?Richard Levitte
|   `* Re: Linking problem with multiply defined symbols, how to resolve?hb
|    `- Re: Linking problem with multiply defined symbols, how to resolve?Richard Levitte
+* Re: Linking problem with multiply defined symbols, how to resolve?Arne Vajhøj
|`- Re: Linking problem with multiply defined symbols, how to resolve?Richard Levitte
+* Re: Linking problem with multiply defined symbols, how to resolve?Stephen Hoffman
|`* Re: Linking problem with multiply defined symbols, how to resolve?Johnny Billquist
| `* Re: Linking problem with multiply defined symbols, how to resolve?hb
|  `* Re: Linking problem with multiply defined symbols, how to resolve?Johnny Billquist
|   `* Re: Linking problem with multiply defined symbols, how to resolve?Simon Clubley
|    `* Re: Linking problem with multiply defined symbols, how to resolve?hb
|     `* Re: Linking problem with multiply defined symbols, how to resolve?Simon Clubley
|      `* Re: Linking problem with multiply defined symbols, how to resolve?hb
|       `- Re: Linking problem with multiply defined symbols, how to resolve?Simon Clubley
`* Re: Linking problem with multiply defined symbols, how to resolve?chris
 `* Re: Linking problem with multiply defined symbols, how to resolve?hb
  `- Re: Linking problem with multiply defined symbols, how to resolve?chris

1
Linking problem with multiply defined symbols, how to resolve?

<151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25059&group=comp.os.vms#25059

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:ad4:5be1:0:b0:498:79dc:d3ff with SMTP id k1-20020ad45be1000000b0049879dcd3ffmr24374663qvc.87.1664350439469;
Wed, 28 Sep 2022 00:33:59 -0700 (PDT)
X-Received: by 2002:a05:622a:1a01:b0:35b:a454:dd01 with SMTP id
f1-20020a05622a1a0100b0035ba454dd01mr25990915qtb.350.1664350439276; Wed, 28
Sep 2022 00:33:59 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Wed, 28 Sep 2022 00:33:58 -0700 (PDT)
Injection-Info: google-groups.googlegroups.com; posting-host=2001:470:28:a97:0:0:1:1;
posting-account=xUWTYAoAAABY1mIetTAK3RSKrNCNVnz8
NNTP-Posting-Host: 2001:470:28:a97:0:0:1:1
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
Subject: Linking problem with multiply defined symbols, how to resolve?
From: rich...@levitte.org (Richard Levitte)
Injection-Date: Wed, 28 Sep 2022 07:33:59 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 3934
 by: Richard Levitte - Wed, 28 Sep 2022 07:33 UTC

Hi all!

I have this problem, that I want to build an app or a shareable image, which is linked with another shared library, but which also implements its own variant of symbols that are defined in that other shared library.

This is intentional. It works absolutely fine to do this on the Unixen I've access to, as well as on Windows... but VMS fails me.

Is this at all possible, or must I seek another method to get what I want?
(there is the possibilty to link with a .OLB library instead of a shareable image, but I'd like to explore the possibilities a little more before I resort to that)

An example below. legacy-dso-legacyprov.OBJ defines all the ERR symbols that LINK complains about, and they are also defined by OSSL$libcrypto03_shr.EXE.

----------8<----------
OPEN/WRITE/SHARE=READ OPT_FILE [.providers]legacy-components.OPT
WRITE OPT_FILE "[.crypto]legacy-dso-cpuid.OBJ,-"
WRITE OPT_FILE "[.crypto]legacy-dso-ctype.OBJ,-"
WRITE OPT_FILE "[.crypto]legacy-dso-mem_clr.OBJ,-"
WRITE OPT_FILE "[.providers]legacy-dso-legacyprov.OBJ"
WRITE OPT_FILE "[.providers]liblegacy.OLB/LIB"
WRITE OPT_FILE "[.providers]libcommon.OLB/LIB"
WRITE OPT_FILE "[]OSSL$libcrypto03_shr.EXE/SHARE"
CLOSE OPT_FILE
LINK /MAP='F$PARSE(".MAP","[.providers]legacy.EXE")' /NODEBUG/NOTRACEBACK/SHARE=[.providers]legacy.EXE [.providers]legacy.OPT/OPT, [.providers]legacy-components.OPT/OPT
%ILINK-W-MULDEF, symbol CRYPTO_memcmp multiply defined
module: CPUID
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.crypto]legacy-dso-cpuid.OBJ;1
%ILINK-W-MULDEF, symbol OPENSSL_cleanse multiply defined
module: MEM_CLR
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.crypto]legacy-dso-mem_clr.OBJ;1
%ILINK-W-MULDEF, symbol ERR_clear_last_mark multiply defined
module: LEGACYPROV
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
%ILINK-W-MULDEF, symbol ERR_new multiply defined
module: LEGACYPROV
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
%ILINK-W-MULDEF, symbol ERR_pop_to_mark multiply defined
module: LEGACYPROV
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
%ILINK-W-MULDEF, symbol ERR_set_debug multiply defined
module: LEGACYPROV
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
%ILINK-W-MULDEF, symbol ERR_set_error multiply defined
module: LEGACYPROV
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
%ILINK-W-MULDEF, symbol ERR_set_mark multiply defined
module: LEGACYPROV
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
%ILINK-W-MULDEF, symbol ERR_vset_error multiply defined
module: LEGACYPROV
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
----------8<----------

Cheers,
Richard

Re: Linking problem with multiply defined symbols, how to resolve?

<th1fd1$tkg$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25064&group=comp.os.vms#25064

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!For9Ok3koBYL06zrH7O/NA.user.46.165.242.91.POSTED!not-for-mail
From: end...@inter.net (hb)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Wed, 28 Sep 2022 14:41:07 +0200
Organization: Aioe.org NNTP Server
Message-ID: <th1fd1$tkg$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="30352"; posting-host="For9Ok3koBYL06zrH7O/NA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:60.0) Gecko/20100101
Thunderbird/60.9.0
Content-Language: en-US
X-Notice: Filtered by postfilter v. 0.9.2
 by: hb - Wed, 28 Sep 2022 12:41 UTC

On 9/28/22 9:33 AM, Richard Levitte wrote:

> I have this problem, that I want to build an app or a shareable image, which is linked with another shared library, but which also implements its own variant of symbols that are defined in that other shared library.
>

If this is a simplified example of what you want to do:

$ cre foo.c
foo() {}
foobar() {}
^Z
$ cc foo
$ link/share foo,tt:/opt
symbol_vector=(foo=proc,foobar=proc)
^Z
$

$ cre bar.c
extern foo();
foobar(){}
bar(){
foo();
foobar();
} ^Z
$ cc bar
$ link bar,tt:/opt/map=bar/cross/full
foo/share
^Z
%LINK-W-MULDEF, symbol FOOBAR multiply defined
in module BAR file DSA3:[DECUSERVE_USER]BAR.OBJ;3
$

then using a linker cluster and /selective will work for for you:

$ link/exe=bar/map=bar/cross/full tt:/opt
cluster=a,,,bar
foo/share/sel
^Z
$

In this example you get foobar resolved from bar.obj and foo from
foo.exe. And no, VMS does not support symbol pre-emption, whatever that is.

Re: Linking problem with multiply defined symbols, how to resolve?

<th1k1n$15pg$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25066&group=comp.os.vms#25066

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!LeVffQP25j5GAigzc2gaQA.user.46.165.242.75.POSTED!not-for-mail
From: arn...@vajhoej.dk (Arne Vajhøj)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Wed, 28 Sep 2022 10:00:23 -0400
Organization: Aioe.org NNTP Server
Message-ID: <th1k1n$15pg$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="38704"; posting-host="LeVffQP25j5GAigzc2gaQA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.3.0
Content-Language: en-US
X-Notice: Filtered by postfilter v. 0.9.2
 by: Arne Vajhøj - Wed, 28 Sep 2022 14:00 UTC

On 9/28/2022 3:33 AM, Richard Levitte wrote:
> I have this problem, that I want to build an app or a shareable
> image, which is linked with another shared library, but which also
> implements its own variant of symbols that are defined in that other
> shared library.
>
> This is intentional. It works absolutely fine to do this on the
> Unixen I've access to, as well as on Windows... but VMS fails me.
>
> Is this at all possible, or must I seek another method to get what I
> want? (there is the possibilty to link with a .OLB library instead of
> a shareable image, but I'd like to explore the possibilities a little
> more before I resort to that)
>
> An example below. legacy-dso-legacyprov.OBJ defines all the ERR
> symbols that LINK complains about, and they are also defined by
> OSSL$libcrypto03_shr.EXE.

Is this for VMS support of the OpenSSL 3 provider model?

Arne

Re: Linking problem with multiply defined symbols, how to resolve?

<th1ovl$ctb6$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25067&group=comp.os.vms#25067

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: seaoh...@hoffmanlabs.invalid (Stephen Hoffman)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Wed, 28 Sep 2022 11:24:37 -0400
Organization: HoffmanLabs LLC
Lines: 34
Message-ID: <th1ovl$ctb6$1@dont-email.me>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Info: reader01.eternal-september.org; posting-host="117bdcec4ad21972d6f24fb5a06265b3";
logging-data="423270"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/k4UIRicLW9bu6oWfDO96fcmdfUavffCc="
User-Agent: Unison/2.2
Cancel-Lock: sha1:jqnTPPjN/Yqbv+RhCHuQTQOpKro=
 by: Stephen Hoffman - Wed, 28 Sep 2022 15:24 UTC

On 2022-09-28 07:33:58 +0000, Richard Levitte said:

> I have this problem, that I want to build an app or a shareable image,
> which is linked with another shared library, but which also implements
> its own variant of symbols that are defined in that other shared
> library.
>
> This is intentional. It works absolutely fine to do this on the Unixen
> I've access to, as well as on Windows... but VMS fails me.

It's not so reliable on various Unix systems; the results can entail
indeterminate behavior even on some Unix systems, based on an error
message I've met.

On OpenVMS, I have a tool Shimmer, which creates a new shareable image
from an existing shareable image, and that allows interception of
selected (or all) calls in the shareable image. I open-sourced this
tool a while back, and probably still have a copy of it around. If
you're interested in this interception, let me know and I'll poke
around for a copy.

Otherwise, you're going to need to have some better hygiene around your
symbols, which usually means some combination of building shareable
images and using selective search qualifier, or maybe dynamic
activation of the shareable image you want with the symbol you want at
run-time using lib$find_image_symbol, this if linker clusters mentioned
earlier don't get you where you need.

--
Pure Personal Opinion | HoffmanLabs LLC

Re: Linking problem with multiply defined symbols, how to resolve?

<76994c28-55d2-4f3d-b0bd-9fa81d2fd30cn@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25069&group=comp.os.vms#25069

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:4407:b0:6cb:e111:32c2 with SMTP id v7-20020a05620a440700b006cbe11132c2mr22555892qkp.415.1664379574542;
Wed, 28 Sep 2022 08:39:34 -0700 (PDT)
X-Received: by 2002:a05:620a:1905:b0:6ce:fe9a:f79f with SMTP id
bj5-20020a05620a190500b006cefe9af79fmr21227753qkb.204.1664379574376; Wed, 28
Sep 2022 08:39:34 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Wed, 28 Sep 2022 08:39:34 -0700 (PDT)
In-Reply-To: <th1k1n$15pg$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:470:28:a97:0:0:1:1;
posting-account=xUWTYAoAAABY1mIetTAK3RSKrNCNVnz8
NNTP-Posting-Host: 2001:470:28:a97:0:0:1:1
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com> <th1k1n$15pg$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <76994c28-55d2-4f3d-b0bd-9fa81d2fd30cn@googlegroups.com>
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
From: rich...@levitte.org (Richard Levitte)
Injection-Date: Wed, 28 Sep 2022 15:39:34 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 1536
 by: Richard Levitte - Wed, 28 Sep 2022 15:39 UTC

onsdag 28 september 2022 kl. 16:00:39 UTC+2 skrev Arne Vajhøj:
> Is this for VMS support of the OpenSSL 3 provider model?

Yes. That shareable image that serves as an example is the 'legacy' provider (a provider with implementations of algorithms that are considered, well, legacy).

Re: Linking problem with multiply defined symbols, how to resolve?

<th20la$dn$1@news.misty.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25072&group=comp.os.vms#25072

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!.POSTED.185.159.157.200!not-for-mail
From: bqt...@softjar.se (Johnny Billquist)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Wed, 28 Sep 2022 19:35:38 +0200
Organization: MGT Consulting
Message-ID: <th20la$dn$1@news.misty.com>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1ovl$ctb6$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Wed, 28 Sep 2022 17:35:39 -0000 (UTC)
Injection-Info: news.misty.com; posting-host="185.159.157.200";
logging-data="439"; mail-complaints-to="abuse@misty.com"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.13.1
Content-Language: en-US
In-Reply-To: <th1ovl$ctb6$1@dont-email.me>
 by: Johnny Billquist - Wed, 28 Sep 2022 17:35 UTC

On 2022-09-28 17:24, Stephen Hoffman wrote:
> On 2022-09-28 07:33:58 +0000, Richard Levitte said:
>
>> I have this problem, that I want to build an app or a shareable image,
>> which is linked with another shared library, but which also implements
>> its own variant of symbols that are defined in that other shared library.
>>
>> This is intentional.  It works absolutely fine to do this on the
>> Unixen I've access to, as well as on Windows...  but VMS fails me.
>
> It's not so reliable on various Unix systems; the results can entail
> indeterminate behavior even on some Unix systems, based on an error
> message I've met.

I was going to ask how you'd know which library you then get the symbol
from in the end in your application. Seems a fair risk you might end up
with the wrong one if you don't have more explicit control.

> On OpenVMS, I have a tool Shimmer, which creates a new shareable image
> from an existing shareable image, and that allows interception of
> selected (or all) calls in the shareable image. I open-sourced this tool
> a while back, and probably still have a copy of it around. If you're
> interested in this interception, let me know and I'll poke around for a
> copy.
>
> Otherwise, you're going to need to have some better hygiene around your
> symbols, which usually means some combination of building shareable
> images and using selective search qualifier, or maybe dynamic activation
> of the shareable image you want with the symbol you want at run-time
> using lib$find_image_symbol, this if linker clusters mentioned earlier
> don't get you where you need.

Not sure if this is helpful or not, but just to give an idea of what
could be something to look for.

In RSX, you would link the shareable library and list symbols you want
to be excluded from the symbol table (or overridden) of the shared
library. Mainly in order to not get symbol conflicts (that can happen
quite a lot otherwise, since external symbols in RSX are only 6
characters long in the first place).

However, that trick is not possible to use on plain object files.

Johnny

Re: Linking problem with multiply defined symbols, how to resolve?

<th2d3s$trk$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25073&group=comp.os.vms#25073

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!6SJtQeouGGIoxY0nNAPbvw.user.46.165.242.91.POSTED!not-for-mail
From: end...@inter.net (hb)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Wed, 28 Sep 2022 23:08:15 +0200
Organization: Aioe.org NNTP Server
Message-ID: <th2d3s$trk$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1ovl$ctb6$1@dont-email.me> <th20la$dn$1@news.misty.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
Injection-Info: gioia.aioe.org; logging-data="30580"; posting-host="6SJtQeouGGIoxY0nNAPbvw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:60.0) Gecko/20100101
Thunderbird/60.9.0
Content-Language: en-US
X-Notice: Filtered by postfilter v. 0.9.2
 by: hb - Wed, 28 Sep 2022 21:08 UTC

On 9/28/22 7:35 PM, Johnny Billquist wrote:
> On 2022-09-28 17:24, Stephen Hoffman wrote:
>> On 2022-09-28 07:33:58 +0000, Richard Levitte said:
>>
>>> I have this problem, that I want to build an app or a shareable
>>> image, which is linked with another shared library, but which also
>>> implements its own variant of symbols that are defined in that other
>>> shared library.
>>>
>>> This is intentional.  It works absolutely fine to do this on the
>>> Unixen I've access to, as well as on Windows...  but VMS fails me.
>>
> Not sure if this is helpful or not, but just to give an idea of what
> could be something to look for.
>
> In RSX, you would link the shareable library and list symbols you want
> to be excluded from the symbol table (or overridden) of the shared
> library. Mainly in order to not get symbol conflicts (that can happen
> quite a lot otherwise, since external symbols in RSX are only 6
> characters long in the first place).
>
> However, that trick is not possible to use on plain object files.

On VMS (all platforms except VAX) you would link the shareable image
once with all the symbols in the global symbol table (GST), which you
need when linking images and which do not exhibit the multiply defined
warning. For linking those images you would re-link the shareable and
exclude the multiply defined symbols from the GST, that is make them
"private" in the symbol vector option. Once linking is complete, any of
the shareable images can be used at run time. Obviously you need an
identical GSMATCH option when linking both shareable images.

To me this approach looks like more work/adjustments in the build
process than the previously suggested solution.

Re: Linking problem with multiply defined symbols, how to resolve?

<th4cei$qok$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25076&group=comp.os.vms#25076

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!jazQyxryRFiI4FEZ51SAvA.user.46.165.242.75.POSTED!not-for-mail
From: chris-no...@tridac.net (chris)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Thu, 29 Sep 2022 16:09:06 +0100
Organization: Aioe.org NNTP Server
Message-ID: <th4cei$qok$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="27412"; posting-host="jazQyxryRFiI4FEZ51SAvA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101
Thunderbird/102.3.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: chris - Thu, 29 Sep 2022 15:09 UTC

On 9/28/22 08:33, Richard Levitte wrote:
> Hi all!
>
> I have this problem, that I want to build an app or a shareable image, which is linked with another shared library, but which also implements its own variant of symbols that are defined in that other shared library.
>
> This is intentional. It works absolutely fine to do this on the Unixen I've access to, as well as on Windows... but VMS fails me.
>
> Is this at all possible, or must I seek another method to get what I want?
> (there is the possibilty to link with a .OLB library instead of a shareable image, but I'd like to explore the possibilities a little more before I resort to that)
>
> An example below. legacy-dso-legacyprov.OBJ defines all the ERR symbols that LINK complains about, and they are also defined by OSSL$libcrypto03_shr.EXE.
>
> ----------8<----------
> OPEN/WRITE/SHARE=READ OPT_FILE [.providers]legacy-components.OPT
> WRITE OPT_FILE "[.crypto]legacy-dso-cpuid.OBJ,-"
> WRITE OPT_FILE "[.crypto]legacy-dso-ctype.OBJ,-"
> WRITE OPT_FILE "[.crypto]legacy-dso-mem_clr.OBJ,-"
> WRITE OPT_FILE "[.providers]legacy-dso-legacyprov.OBJ"
> WRITE OPT_FILE "[.providers]liblegacy.OLB/LIB"
> WRITE OPT_FILE "[.providers]libcommon.OLB/LIB"
> WRITE OPT_FILE "[]OSSL$libcrypto03_shr.EXE/SHARE"
> CLOSE OPT_FILE
> LINK /MAP='F$PARSE(".MAP","[.providers]legacy.EXE")' /NODEBUG/NOTRACEBACK/SHARE=[.providers]legacy.EXE [.providers]legacy.OPT/OPT, [.providers]legacy-components.OPT/OPT
> %ILINK-W-MULDEF, symbol CRYPTO_memcmp multiply defined
> module: CPUID
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.crypto]legacy-dso-cpuid.OBJ;1
> %ILINK-W-MULDEF, symbol OPENSSL_cleanse multiply defined
> module: MEM_CLR
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.crypto]legacy-dso-mem_clr.OBJ;1
> %ILINK-W-MULDEF, symbol ERR_clear_last_mark multiply defined
> module: LEGACYPROV
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
> %ILINK-W-MULDEF, symbol ERR_new multiply defined
> module: LEGACYPROV
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
> %ILINK-W-MULDEF, symbol ERR_pop_to_mark multiply defined
> module: LEGACYPROV
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
> %ILINK-W-MULDEF, symbol ERR_set_debug multiply defined
> module: LEGACYPROV
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
> %ILINK-W-MULDEF, symbol ERR_set_error multiply defined
> module: LEGACYPROV
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
> %ILINK-W-MULDEF, symbol ERR_set_mark multiply defined
> module: LEGACYPROV
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
> %ILINK-W-MULDEF, symbol ERR_vset_error multiply defined
> module: LEGACYPROV
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]legacy-dso-legacyprov.OBJ;1
> ----------8<----------
>
> Cheers,
> Richard

Can you use the "weak" keyword with one of the sets of symbols, which
automatically gets over ridden at link time in favour of another
conventionally defined same ident symbol at link time ?.

It's typically used in embedded work as a placeholder, say in interrupt
vector tables to a provide a default handler, where the actual handler
has not yet been written...

Chris

Re: Linking problem with multiply defined symbols, how to resolve?

<th55pc$95v$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25077&group=comp.os.vms#25077

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!8BxyZTSGxDQmySzJWLPBaA.user.46.165.242.91.POSTED!not-for-mail
From: end...@inter.net (hb)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Fri, 30 Sep 2022 00:21:35 +0200
Organization: Aioe.org NNTP Server
Message-ID: <th55pc$95v$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th4cei$qok$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="9407"; posting-host="8BxyZTSGxDQmySzJWLPBaA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:60.0) Gecko/20100101
Thunderbird/60.9.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-US
 by: hb - Thu, 29 Sep 2022 22:21 UTC

On 9/29/22 5:09 PM, chris wrote:
> On 9/28/22 08:33, Richard Levitte wrote:
>> Hi all!
>>
>> I have this problem, that I want to build an app or a shareable image,
>> which is linked with another shared library, but which also implements
>> its own variant of symbols that are defined in that other shared library.
>>...
> Can you use the "weak" keyword with one of the sets of symbols, which
> automatically gets over ridden at link time in favour of another
> conventionally defined same ident symbol at link time ?
The short answer is no.

The VMS linker manual has some paragraphs about weak symbols. There it
is said: "In general, a symbol can have only one strong or one VMS-style
weak definition but it can have multiple UNIX-style weak definitions."

Yes, there is one exception for VMS-style weak definitions, but that
does not apply here.

Here you want to have multiple definitions - in the shareable image and
in the object module. So you would need to have UNIX-style weak
definitions. These weak definitions are IA64 and x86 specific. They are
created by the C++ compiler. If the OP's code were C++ code resulting in
UNIX-style weak definitions then the linker would not report a
%ILINK-W-MULDEF. Also, the IA64 shareable image's GST only contains
strong definitions. So the object module's definition would be
discarded. On x86 this can be different. So the source code is either
not C++ or the language constructs used, do not result in UNIX-style
weak definitions.

Creating a UNIX-style weak definition in other languages than C++ is not
possible. Converting any strong (or VMS-style weak) definition into a
UNIX-style weak definition is not possible (except you use the patch
utility).

Re: Linking problem with multiply defined symbols, how to resolve?

<th57jh$r01$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25078&group=comp.os.vms#25078

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!jazQyxryRFiI4FEZ51SAvA.user.46.165.242.75.POSTED!not-for-mail
From: chris-no...@tridac.net (chris)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Thu, 29 Sep 2022 23:52:33 +0100
Organization: Aioe.org NNTP Server
Message-ID: <th57jh$r01$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th4cei$qok$1@gioia.aioe.org> <th55pc$95v$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="27649"; posting-host="jazQyxryRFiI4FEZ51SAvA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:102.0) Gecko/20100101
Thunderbird/102.3.0
Content-Language: en-GB
X-Notice: Filtered by postfilter v. 0.9.2
 by: chris - Thu, 29 Sep 2022 22:52 UTC

On 9/29/22 23:21, hb wrote:
> On 9/29/22 5:09 PM, chris wrote:
>> On 9/28/22 08:33, Richard Levitte wrote:
>>> Hi all!
>>>
>>> I have this problem, that I want to build an app or a shareable image,
>>> which is linked with another shared library, but which also implements
>>> its own variant of symbols that are defined in that other shared library.
>>> ...
>> Can you use the "weak" keyword with one of the sets of symbols, which
>> automatically gets over ridden at link time in favour of another
>> conventionally defined same ident symbol at link time ?
> The short answer is no.
>
> The VMS linker manual has some paragraphs about weak symbols. There it
> is said: "In general, a symbol can have only one strong or one VMS-style
> weak definition but it can have multiple UNIX-style weak definitions."
>
> Yes, there is one exception for VMS-style weak definitions, but that
> does not apply here.
>
> Here you want to have multiple definitions - in the shareable image and
> in the object module. So you would need to have UNIX-style weak
> definitions. These weak definitions are IA64 and x86 specific. They are
> created by the C++ compiler. If the OP's code were C++ code resulting in
> UNIX-style weak definitions then the linker would not report a
> %ILINK-W-MULDEF. Also, the IA64 shareable image's GST only contains
> strong definitions. So the object module's definition would be
> discarded. On x86 this can be different. So the source code is either
> not C++ or the language constructs used, do not result in UNIX-style
> weak definitions.
>
> Creating a UNIX-style weak definition in other languages than C++ is not
> possible. Converting any strong (or VMS-style weak) definition into a
> UNIX-style weak definition is not possible (except you use the patch
> utility).

I guess you mean vms toolchain specific, as i've used the weak keyword
in C in several different projects and architectures. It's a toolchain
function, compiler and linker and not normally processor specific.

Dunno, seems like the op needs to refactor the codebase so that the
linker only ever sees a single instance of a given symbol, which may
or may not include the weak keyword, if the toolchain allows it.
Serious design error though, multiple definitions for the same symbol
are bound to lead to difficulties...

Chris

Re: Linking problem with multiply defined symbols, how to resolve?

<th6u8r$vvl$1@news.misty.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25080&group=comp.os.vms#25080

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.misty.com!.POSTED.185.159.157.200!not-for-mail
From: bqt...@softjar.se (Johnny Billquist)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Fri, 30 Sep 2022 16:25:31 +0200
Organization: MGT Consulting
Message-ID: <th6u8r$vvl$1@news.misty.com>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1ovl$ctb6$1@dont-email.me> <th20la$dn$1@news.misty.com>
<th2d3s$trk$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 30 Sep 2022 14:25:31 -0000 (UTC)
Injection-Info: news.misty.com; posting-host="185.159.157.200";
logging-data="32757"; mail-complaints-to="abuse@misty.com"
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0)
Gecko/20100101 Thunderbird/91.13.1
Content-Language: en-US
In-Reply-To: <th2d3s$trk$1@gioia.aioe.org>
 by: Johnny Billquist - Fri, 30 Sep 2022 14:25 UTC

On 2022-09-28 23:08, hb wrote:
> On 9/28/22 7:35 PM, Johnny Billquist wrote:
>> On 2022-09-28 17:24, Stephen Hoffman wrote:
>>> On 2022-09-28 07:33:58 +0000, Richard Levitte said:
>>>
>>>> I have this problem, that I want to build an app or a shareable
>>>> image, which is linked with another shared library, but which also
>>>> implements its own variant of symbols that are defined in that other
>>>> shared library.
>>>>
>>>> This is intentional.  It works absolutely fine to do this on the
>>>> Unixen I've access to, as well as on Windows...  but VMS fails me.
>>>
>> Not sure if this is helpful or not, but just to give an idea of what
>> could be something to look for.
>>
>> In RSX, you would link the shareable library and list symbols you want
>> to be excluded from the symbol table (or overridden) of the shared
>> library. Mainly in order to not get symbol conflicts (that can happen
>> quite a lot otherwise, since external symbols in RSX are only 6
>> characters long in the first place).
>>
>> However, that trick is not possible to use on plain object files.
>
> On VMS (all platforms except VAX) you would link the shareable image
> once with all the symbols in the global symbol table (GST), which you
> need when linking images and which do not exhibit the multiply defined
> warning. For linking those images you would re-link the shareable and
> exclude the multiply defined symbols from the GST, that is make them
> "private" in the symbol vector option. Once linking is complete, any of
> the shareable images can be used at run time. Obviously you need an
> identical GSMATCH option when linking both shareable images.
>
> To me this approach looks like more work/adjustments in the build
> process than the previously suggested solution.

Maybe I wasn't paying attention. I don't think I've seen a previous
suggested solution that applies to VMS. And the solution for Unix from
which this started is questionable how well it actually works (not
entirely clear *which* symbol would in the end be the one your
application would resolve to).

Johnny

Re: Linking problem with multiply defined symbols, how to resolve?

<8e67a21f-894b-4967-b9e6-9353037422ben@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25081&group=comp.os.vms#25081

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:622a:2d1:b0:35d:43c1:ae4d with SMTP id a17-20020a05622a02d100b0035d43c1ae4dmr6886392qtx.147.1664548214871;
Fri, 30 Sep 2022 07:30:14 -0700 (PDT)
X-Received: by 2002:a05:6214:ac1:b0:4af:9cdb:e4f with SMTP id
g1-20020a0562140ac100b004af9cdb0e4fmr6956763qvi.40.1664548214656; Fri, 30 Sep
2022 07:30:14 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Fri, 30 Sep 2022 07:30:14 -0700 (PDT)
In-Reply-To: <th1fd1$tkg$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:470:28:a97:0:0:1:1;
posting-account=xUWTYAoAAABY1mIetTAK3RSKrNCNVnz8
NNTP-Posting-Host: 2001:470:28:a97:0:0:1:1
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com> <th1fd1$tkg$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <8e67a21f-894b-4967-b9e6-9353037422ben@googlegroups.com>
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
From: rich...@levitte.org (Richard Levitte)
Injection-Date: Fri, 30 Sep 2022 14:30:14 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2749
 by: Richard Levitte - Fri, 30 Sep 2022 14:30 UTC

onsdag 28 september 2022 kl. 14:41:09 UTC+2 skrev hb:
> $ link bar,tt:/opt/map=bar/cross/full
> foo/share
> ^Z
> %LINK-W-MULDEF, symbol FOOBAR multiply defined
> in module BAR file DSA3:[DECUSERVE_USER]BAR.OBJ;3
> $
>
> then using a linker cluster and /selective will work for for you:
>
> $ link/exe=bar/map=bar/cross/full tt:/opt
> cluster=a,,,bar
> foo/share/sel
> ^Z
> $

So this is the part that's a mystery to me... and I gotta confess, 'cluster' is magic to me, I haven't been able to wrap my brains around it and have never really used it other than as an incantation that someone else gave me.

See, I've actually tried /SELECTIVE before, believing the documentation that essentially says "... only those symbols that have been referenced by previously processed input files". However, when I tried just adding it to the shareable image in my example, I ended up with a shitload of undefined symbol references instead, like this:

%ILINK-W-USEUNDEF, undefined symbol OSSL_PARAM_locate referenced
section: $CODE$
offset: %X0000000000000040 slot: 2
module: digestcommon
file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]LIBCOMMON.OLB;1

Looking at it all now, with your example in mind, I can only assume that my assumption that files given in the /OPT file are treated top to bottom as written is more like a delusion, and that CLUSTER helps getting things processed in the order I desire.

Re: Linking problem with multiply defined symbols, how to resolve?

<th78oe$12bok$2@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25084&group=comp.os.vms#25084

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!usenet.goja.nl.eu.org!3.eu.feeder.erje.net!feeder.erje.net!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Fri, 30 Sep 2022 17:24:30 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <th78oe$12bok$2@dont-email.me>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com> <th1ovl$ctb6$1@dont-email.me> <th20la$dn$1@news.misty.com> <th2d3s$trk$1@gioia.aioe.org> <th6u8r$vvl$1@news.misty.com>
Injection-Date: Fri, 30 Sep 2022 17:24:30 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="5083b74d49c51cb6d7385619bf907525";
logging-data="1126164"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ZLqpv0qVs168TBnljvWcWlfy4PeZUkIo="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:fhk+skpo5vpbTHXwDrPRLeBbiUs=
 by: Simon Clubley - Fri, 30 Sep 2022 17:24 UTC

On 2022-09-30, Johnny Billquist <bqt@softjar.se> wrote:
>
> Maybe I wasn't paying attention. I don't think I've seen a previous
> suggested solution that applies to VMS. And the solution for Unix from
> which this started is questionable how well it actually works (not
> entirely clear *which* symbol would in the end be the one your
> application would resolve to).
>

_IF_ I understand what is being asked for here (two different source code
modules both defining the same global symbol name), then it doesn't matter
in Unix provided both symbols are the same size, and of the same type, as
the code in both modules will end up referencing the same memory area.

IIRC, if one symbol definition is of a different type, or a different size,
compared to the other symbol, doesn't the GNU linker issue an error during
linking ?

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

Re: Linking problem with multiply defined symbols, how to resolve?

<th79ji$37o$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25085&group=comp.os.vms#25085

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!xxiQOuiZxOVXzIXbhzyeqA.user.46.165.242.91.POSTED!not-for-mail
From: end...@inter.net (hb)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Fri, 30 Sep 2022 19:38:58 +0200
Organization: Aioe.org NNTP Server
Message-ID: <th79ji$37o$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1fd1$tkg$1@gioia.aioe.org>
<8e67a21f-894b-4967-b9e6-9353037422ben@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="3320"; posting-host="xxiQOuiZxOVXzIXbhzyeqA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.13.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-US
 by: hb - Fri, 30 Sep 2022 17:38 UTC

On 9/30/22 16:30, Richard Levitte wrote:
> onsdag 28 september 2022 kl. 14:41:09 UTC+2 skrev hb:
>> $ link bar,tt:/opt/map=bar/cross/full
>> foo/share
>> ^Z
>> %LINK-W-MULDEF, symbol FOOBAR multiply defined
>> in module BAR file DSA3:[DECUSERVE_USER]BAR.OBJ;3
>> $
>>
>> then using a linker cluster and /selective will work for for you:
>>
>> $ link/exe=bar/map=bar/cross/full tt:/opt
>> cluster=a,,,bar
>> foo/share/sel
>> ^Z
>> $
>
> So this is the part that's a mystery to me... and I gotta confess, 'cluster' is magic to me, I haven't been able to wrap my brains around it and have never really used it other than as an incantation that someone else gave me.
>
> See, I've actually tried /SELECTIVE before, believing the documentation that essentially says "... only those symbols that have been referenced by previously processed input files". However, when I tried just adding it to the shareable image in my example, I ended up with a shitload of undefined symbol references instead, like this:
>
> %ILINK-W-USEUNDEF, undefined symbol OSSL_PARAM_locate referenced
> section: $CODE$
> offset: %X0000000000000040 slot: 2
> module: digestcommon
> file: USR_DISK:[RICLE.TEST.openssl-3_1_0-dev.providers]LIBCOMMON.OLB;1
>
> Looking at it all now, with your example in mind, I can only assume that my assumption that files given in the /OPT file are treated top to bottom as written is more like a delusion, and that CLUSTER helps getting things processed in the order I desire.

Please have a look at the linker manual, 2.2.4. Processing Input Files
Selectively, and 2.3.1. Understanding Cluster Creation.

The linker processes input files in cluster order. With object modules
on the command line or in the options file, the object module is
collected into the "DEFAULT_CLUSTER". Any shareable image specified in
the options file is put in its own cluster (it's shareable image name)
in the order of the options file, no matter if it is selectively
processed or not. All such "user defined" clusters are put into the
cluster list before the default cluster.

So a
$ link/exe=bar/map=bar/cross/full bar,tt:/opt
foo/share/sel
^Z
will create the cluster FOO, which is processed before the
DEFAULT_CLUSTER, that is before the object module bar. Obviously at the
time processing the shareable foo, there is no undefined symbol which
can be "selectively" resolved from it. After processing bar, there is.
But the linker is done with cluster FOO, the shareable image, hence you
get the W-USEUNDEF.

$ link/exe=bar/map=bar/cross/full tt:/opt
cluster=a,,,bar
foo/share/sel
^Z
lets the linker put bar into the cluster A before the cluster FOO of the
shareable image. Now bar is processed before the shareable foo and the
unresolved symbol can be "selectively" resolved from the shareable image.

FWIW,
$ link/exe=bar/map=bar/cross/full tt:/opt
foo/share/sel
cluster=a,,,bar
^Z
also results in an W-USEUNDEF as well as
$ link/exe=bar/map=bar/cross/full tt:/opt
bar
foo/share/sel
^Z

And this processing of input files in cluster order explains why you
initially got a duplicate reported for the object module and not for the
shareable image, and why the symbol is resolved from the shareable image
and not from the object module.

Re: Linking problem with multiply defined symbols, how to resolve?

<th7g9r$14sj$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25086&group=comp.os.vms#25086

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!xxiQOuiZxOVXzIXbhzyeqA.user.46.165.242.91.POSTED!not-for-mail
From: end...@inter.net (hb)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Fri, 30 Sep 2022 21:33:15 +0200
Organization: Aioe.org NNTP Server
Message-ID: <th7g9r$14sj$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1ovl$ctb6$1@dont-email.me> <th20la$dn$1@news.misty.com>
<th2d3s$trk$1@gioia.aioe.org> <th6u8r$vvl$1@news.misty.com>
<th78oe$12bok$2@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="37779"; posting-host="xxiQOuiZxOVXzIXbhzyeqA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.13.0
Content-Language: en-US
X-Notice: Filtered by postfilter v. 0.9.2
 by: hb - Fri, 30 Sep 2022 19:33 UTC

On 9/30/22 19:24, Simon Clubley wrote:
> On 2022-09-30, Johnny Billquist <bqt@softjar.se> wrote:
>>
>> Maybe I wasn't paying attention. I don't think I've seen a previous
>> suggested solution that applies to VMS. And the solution for Unix from
>> which this started is questionable how well it actually works (not
>> entirely clear *which* symbol would in the end be the one your
>> application would resolve to).
>>
>
> _IF_ I understand what is being asked for here (two different source code
> modules both defining the same global symbol name), then it doesn't matter
> in Unix provided both symbols are the same size, and of the same type, as
> the code in both modules will end up referencing the same memory area.

Did you actually try this? On Linux with gcc and binutils I get
/usr/bin/ld: two.o:(.bss+0x0): multiple definition of `same';
one.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status

Two different source modules both defining the same global is not what
the OP is asking for, otherwise he could not link on all Unix systems.

On Unix, shared libraries and symbol pre-emption ensures that this works
for him as expected.

Re: Linking problem with multiply defined symbols, how to resolve?

<c7ed11e5-1a3b-4ba0-95c2-a6d9d5f50140n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25087&group=comp.os.vms#25087

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a0c:ab59:0:b0:4af:a072:2886 with SMTP id i25-20020a0cab59000000b004afa0722886mr11603269qvb.11.1664651593931;
Sat, 01 Oct 2022 12:13:13 -0700 (PDT)
X-Received: by 2002:a05:6214:2aa6:b0:4ac:7fef:f54d with SMTP id
js6-20020a0562142aa600b004ac7feff54dmr11756131qvb.22.1664651593741; Sat, 01
Oct 2022 12:13:13 -0700 (PDT)
Path: i2pn2.org!i2pn.org!news.niel.me!glou.org!news.glou.org!fdn.fr!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Sat, 1 Oct 2022 12:13:13 -0700 (PDT)
In-Reply-To: <th79ji$37o$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:470:28:a97:0:0:1:1;
posting-account=xUWTYAoAAABY1mIetTAK3RSKrNCNVnz8
NNTP-Posting-Host: 2001:470:28:a97:0:0:1:1
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1fd1$tkg$1@gioia.aioe.org> <8e67a21f-894b-4967-b9e6-9353037422ben@googlegroups.com>
<th79ji$37o$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <c7ed11e5-1a3b-4ba0-95c2-a6d9d5f50140n@googlegroups.com>
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
From: rich...@levitte.org (Richard Levitte)
Injection-Date: Sat, 01 Oct 2022 19:13:13 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Richard Levitte - Sat, 1 Oct 2022 19:13 UTC

fredag 30 september 2022 kl. 19:39:03 UTC+2 skrev hb:
> The linker processes input files in cluster order. With object modules
> on the command line or in the options file, the object module is
> collected into the "DEFAULT_CLUSTER". Any shareable image specified in
> the options file is put in its own cluster (it's shareable image name)
> in the order of the options file, no matter if it is selectively
> processed or not. All such "user defined" clusters are put into the
> cluster list before the default cluster.

That last bit, "before the default cluster", is the bit that escaped me, obviously. I don't see that clearly in the manual, quite the contrary when I read this, for example (third paragraph of 2.3.1, emphasis of "after" mine):

> Clusters for shareable images, specified in shareable image libraries, appear /after/ the default cluster
> on the cluster list because they are created later in linker processing, when the linker knows which
> shareable images in the library are needed for the link operation.

Maybe I misunderstand... so I guess, thanks for the clarification, and I guess I'd better turn to explicit clustering.

Cheers,
Richard

Re: Linking problem with multiply defined symbols, how to resolve?

<thbjni$1i11$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25089&group=comp.os.vms#25089

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!xxiQOuiZxOVXzIXbhzyeqA.user.46.165.242.91.POSTED!not-for-mail
From: end...@inter.net (hb)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Sun, 2 Oct 2022 10:56:18 +0200
Organization: Aioe.org NNTP Server
Message-ID: <thbjni$1i11$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1fd1$tkg$1@gioia.aioe.org>
<8e67a21f-894b-4967-b9e6-9353037422ben@googlegroups.com>
<th79ji$37o$1@gioia.aioe.org>
<c7ed11e5-1a3b-4ba0-95c2-a6d9d5f50140n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="51233"; posting-host="xxiQOuiZxOVXzIXbhzyeqA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.13.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-US
 by: hb - Sun, 2 Oct 2022 08:56 UTC

On 10/1/22 21:13, Richard Levitte wrote:
> fredag 30 september 2022 kl. 19:39:03 UTC+2 skrev hb:
>> The linker processes input files in cluster order. With object modules
>> on the command line or in the options file, the object module is
>> collected into the "DEFAULT_CLUSTER". Any shareable image specified in
>> the options file is put in its own cluster (it's shareable image name)
>> in the order of the options file, no matter if it is selectively
>> processed or not. All such "user defined" clusters are put into the
>> cluster list before the default cluster.
>
> That last bit, "before the default cluster", is the bit that escaped me, obviously. I don't see that clearly in the manual, quite the contrary when I read this, for example (third paragraph of 2.3.1, emphasis of "after" mine):
>
>> Clusters for shareable images, specified in shareable image libraries, appear /after/ the default cluster
>> on the cluster list because they are created later in linker processing, when the linker knows which
>> shareable images in the library are needed for the link operation.

This is for libraries, for example IMAGELIB.OLB, which contains
DECC$SHR.EXE, etc.

In the previous paragraph it is said: "The linker may create additional
clusters, called named clusters, depending on the types of input files
you specify and the linker options you specify. If it creates additional
clusters, the linker places them on the cluster list ahead of the
default cluster, in the order in which it encounters them in the options
file."

And in Table 2.2. Linker Input File Cluster Processing, there is

Shareable image file (.EXE) - Always placed in a named cluster.

and

Library files (.OLB) - ... However, the linker puts shareable images
referenced from IMAGELIB.OLB into new clusters at the end of the cluster
list (after the default cluster).

Could the documentation be made clearer? It looks like.

Have a look at a full map of a hello-world type C program. You will see
the DECC$SHR after the DEFAULT_CLUSTER.

If you link /NOSYSSHR and add SYS$SHARE:DECC$SHR/SHARE (and
SYS$SHARE:SYS$PUBLIC_VECTORS/SHARE) you will find the named clusters
before the DEFAULT_CLUSTER.

You can have your own shareable image library. Put whatever shareable
image you need into the library. The one(s) with the same symbol(s) as
defined in the object module(s) need to be selectively processed. Then
add that image library to your command line.

For my example the commands are

$ libr /cre/share shrlib foo/sel
$ link bar,shrlib/lib
$

That should work as well.

Re: Linking problem with multiply defined symbols, how to resolve?

<thd6d9$1somu$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25094&group=comp.os.vms#25094

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Sun, 2 Oct 2022 23:21:13 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 68
Message-ID: <thd6d9$1somu$1@dont-email.me>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com> <th1ovl$ctb6$1@dont-email.me> <th20la$dn$1@news.misty.com> <th2d3s$trk$1@gioia.aioe.org> <th6u8r$vvl$1@news.misty.com> <th78oe$12bok$2@dont-email.me> <th7g9r$14sj$1@gioia.aioe.org>
Injection-Date: Sun, 2 Oct 2022 23:21:13 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="2f2a60670af774abfdd0d350f2b47797";
logging-data="1991390"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19/I5sLYG7c5kH6tCIZxBK/8gSIgTjyiv0="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:Kj/8s92dPpb7zCsn4N1f6a+KhQA=
 by: Simon Clubley - Sun, 2 Oct 2022 23:21 UTC

On 2022-09-30, hb <end.of@inter.net> wrote:
> On 9/30/22 19:24, Simon Clubley wrote:
>> On 2022-09-30, Johnny Billquist <bqt@softjar.se> wrote:
>>>
>>> Maybe I wasn't paying attention. I don't think I've seen a previous
>>> suggested solution that applies to VMS. And the solution for Unix from
>>> which this started is questionable how well it actually works (not
>>> entirely clear *which* symbol would in the end be the one your
>>> application would resolve to).
>>>
>>
>> _IF_ I understand what is being asked for here (two different source code
>> modules both defining the same global symbol name), then it doesn't matter
>> in Unix provided both symbols are the same size, and of the same type, as
>> the code in both modules will end up referencing the same memory area.
>
> Did you actually try this? On Linux with gcc and binutils I get
> /usr/bin/ld: two.o:(.bss+0x0): multiple definition of `same';
> one.o:(.bss+0x0): first defined here
> collect2: error: ld returned 1 exit status
>

one.c:

/* Compile with: "gcc -Wall -o one one.c two.c" */

#include <stdio.h>

int gbl_val;

void two();

int main(int argc, char *argv[])
{
gbl_val = 1;
two();
printf("one: gbl_val = %d\n", gbl_val);
return 0;
}

two.c:

#include <stdio.h>

int gbl_val;

void two()
{
printf("two: gbl_val = %d\n", gbl_val);
gbl_val = 2;
}

That works just fine for me on Linux (unfortunately :-().

[deleted@deleted ~]$ ./one
two: gbl_val = 1
one: gbl_val = 2

If it's not working for you, then it's a recent change in one of Linux,
binutils, or gcc that's likely to break at least some code, because while
I would never write something so hideous, I have seen it present in other
code.

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

Re: Linking problem with multiply defined symbols, how to resolve?

<524f7ee4-10c9-476f-af29-e6fe0b9979a6n@googlegroups.com>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25095&group=comp.os.vms#25095

  copy link   Newsgroups: comp.os.vms
X-Received: by 2002:a05:620a:4015:b0:6ce:beaa:3915 with SMTP id h21-20020a05620a401500b006cebeaa3915mr12738550qko.375.1664771421447;
Sun, 02 Oct 2022 21:30:21 -0700 (PDT)
X-Received: by 2002:a05:620a:45a9:b0:6ce:2d55:5870 with SMTP id
bp41-20020a05620a45a900b006ce2d555870mr12441900qkb.362.1664771421279; Sun, 02
Oct 2022 21:30:21 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!feed1.usenet.blueworldhosting.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.os.vms
Date: Sun, 2 Oct 2022 21:30:21 -0700 (PDT)
In-Reply-To: <thbjni$1i11$1@gioia.aioe.org>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:470:28:a97:0:0:1:1;
posting-account=xUWTYAoAAABY1mIetTAK3RSKrNCNVnz8
NNTP-Posting-Host: 2001:470:28:a97:0:0:1:1
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1fd1$tkg$1@gioia.aioe.org> <8e67a21f-894b-4967-b9e6-9353037422ben@googlegroups.com>
<th79ji$37o$1@gioia.aioe.org> <c7ed11e5-1a3b-4ba0-95c2-a6d9d5f50140n@googlegroups.com>
<thbjni$1i11$1@gioia.aioe.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <524f7ee4-10c9-476f-af29-e6fe0b9979a6n@googlegroups.com>
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
From: rich...@levitte.org (Richard Levitte)
Injection-Date: Mon, 03 Oct 2022 04:30:21 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Received-Bytes: 2937
 by: Richard Levitte - Mon, 3 Oct 2022 04:30 UTC

söndag 2 oktober 2022 kl. 10:56:26 UTC+2 skrev hb:
> On 10/1/22 21:13, Richard Levitte wrote:
> > That last bit, "before the default cluster", is the bit that escaped me, obviously. I don't see that clearly in the manual, quite the contrary when I read this, for example (third paragraph of 2.3.1, emphasis of "after" mine):
> >
> >> Clusters for shareable images, specified in shareable image libraries, appear /after/ the default cluster
> >> on the cluster list because they are created later in linker processing, when the linker knows which
> >> shareable images in the library are needed for the link operation.
> This is for libraries, for example IMAGELIB.OLB, which contains
> DECC$SHR.EXE, etc.

Oh, right, now I see "shareable image libraries" in that quoted paragraph.
Somehow, I glossed over that detail and kept reading "shareable images"...

> Could the documentation be made clearer? It looks like.

It might be my way of reading that's a bit off, but yeah, I'm thinking that a discrete
sub-sectioning to emphasise a little more that one is about shareable images and
the other about shareable image libraries, that might help. If you've been immersed
in a world that talk in terms of "shared libraries" (which I have), it's easy to get lost
in the nuances between "image" and "library".

Anyway, thank you for your clarifications... and for your patience, which is noted.
I feel quite enlightened :-)

Cheers,
Richard

Re: Linking problem with multiply defined symbols, how to resolve?

<the5sv$15mb$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25096&group=comp.os.vms#25096

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!aioe.org!xxiQOuiZxOVXzIXbhzyeqA.user.46.165.242.91.POSTED!not-for-mail
From: end...@inter.net (hb)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Mon, 3 Oct 2022 10:18:38 +0200
Organization: Aioe.org NNTP Server
Message-ID: <the5sv$15mb$1@gioia.aioe.org>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com>
<th1ovl$ctb6$1@dont-email.me> <th20la$dn$1@news.misty.com>
<th2d3s$trk$1@gioia.aioe.org> <th6u8r$vvl$1@news.misty.com>
<th78oe$12bok$2@dont-email.me> <th7g9r$14sj$1@gioia.aioe.org>
<thd6d9$1somu$1@dont-email.me>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="38603"; posting-host="xxiQOuiZxOVXzIXbhzyeqA.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101
Thunderbird/91.13.0
Content-Language: en-US
X-Notice: Filtered by postfilter v. 0.9.2
 by: hb - Mon, 3 Oct 2022 08:18 UTC

On 10/3/22 01:21, Simon Clubley wrote:
> On 2022-09-30, hb <end.of@inter.net> wrote:
>> On 9/30/22 19:24, Simon Clubley wrote:
>>> On 2022-09-30, Johnny Billquist <bqt@softjar.se> wrote:
>>>>
>>>> Maybe I wasn't paying attention. I don't think I've seen a previous
>>>> suggested solution that applies to VMS. And the solution for Unix from
>>>> which this started is questionable how well it actually works (not
>>>> entirely clear *which* symbol would in the end be the one your
>>>> application would resolve to).
>>>>
>>>
>>> _IF_ I understand what is being asked for here (two different source code
>>> modules both defining the same global symbol name), then it doesn't matter
>>> in Unix provided both symbols are the same size, and of the same type, as
>>> the code in both modules will end up referencing the same memory area.
>>
>> Did you actually try this? On Linux with gcc and binutils I get
>> /usr/bin/ld: two.o:(.bss+0x0): multiple definition of `same';
>> one.o:(.bss+0x0): first defined here
>> collect2: error: ld returned 1 exit status
>>
>
> one.c:
>
> /* Compile with: "gcc -Wall -o one one.c two.c" */
> ...
> If it's not working for you, then it's a recent change in one of Linux,
> binutils, or gcc that's likely to break at least some code, because while
> I would never write something so hideous, I have seen it present in other
> code.

$ gcc -v
....
gcc version 10.2.1 20210110 (Debian 10.2.1-6)
$ gcc -Wall -o one one.c two.c
/usr/bin/ld: /tmp/ccTDBf9g.o:(.bss+0x0): multiple definition of
`gbl_val'; /tmp/ccXuTT0f.o:(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
$ gcc -Wall -fcommon -o one one.c two.c
$

They changed the default, which is now -fno-common.

Re: Linking problem with multiply defined symbols, how to resolve?

<thf6qj$29i7v$1@dont-email.me>

  copy mid

https://www.novabbs.com/computers/article-flat.php?id=25097&group=comp.os.vms#25097

  copy link   Newsgroups: comp.os.vms
Path: i2pn2.org!i2pn.org!eternal-september.org!reader01.eternal-september.org!.POSTED!not-for-mail
From: club...@remove_me.eisner.decus.org-Earth.UFP (Simon Clubley)
Newsgroups: comp.os.vms
Subject: Re: Linking problem with multiply defined symbols, how to resolve?
Date: Mon, 3 Oct 2022 17:40:35 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <thf6qj$29i7v$1@dont-email.me>
References: <151e2df4-cd39-433a-a669-06055be7eb1en@googlegroups.com> <th1ovl$ctb6$1@dont-email.me> <th20la$dn$1@news.misty.com> <th2d3s$trk$1@gioia.aioe.org> <th6u8r$vvl$1@news.misty.com> <th78oe$12bok$2@dont-email.me> <th7g9r$14sj$1@gioia.aioe.org> <thd6d9$1somu$1@dont-email.me> <the5sv$15mb$1@gioia.aioe.org>
Injection-Date: Mon, 3 Oct 2022 17:40:35 -0000 (UTC)
Injection-Info: reader01.eternal-september.org; posting-host="2f2a60670af774abfdd0d350f2b47797";
logging-data="2410751"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+1CkFlO5WjD3nC3u/dBfe7/iB1rHgB5GU="
User-Agent: slrn/0.9.8.1 (VMS/Multinet)
Cancel-Lock: sha1:EqmZ6jIhsgrjQMnmxckNBBBCoxg=
 by: Simon Clubley - Mon, 3 Oct 2022 17:40 UTC

On 2022-10-03, hb <end.of@inter.net> wrote:
>
> They changed the default, which is now -fno-common.

Thanks. Now I see what is going on in the latest versions, I strongly
prefer that new behaviour as the default behaviour. Pity it wasn't the
out of the box behaviour in older versions.

Simon.

--
Simon Clubley, clubley@remove_me.eisner.decus.org-Earth.UFP
Walking destinations on a map are further away than they appear.

1
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor