This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: gcc 3.0.1 does not work on Solaris 8/sparc
- To: libstdc++ at gcc dot gnu dot org
- Subject: Re: gcc 3.0.1 does not work on Solaris 8/sparc
- From: Loren James Rittle <rittle at latour dot rsch dot comm dot mot dot com>
- Date: Fri, 7 Sep 2001 16:04:16 -0500 (CDT)
- Cc: mark at codesourcery dot com
- Organization: Networks and Infrastructure Lab (IL02/2240), Motorola Labs
- References: <Pine.NEB.4.33.0109071311170.11158-100000@mimas.fachschaften.tu-muenchen.de>
Hi Mark,
>>> OK. That suggests that writing `$(LN_S) -f' anywhere is probably
>>> a mistake; we need an autoconf test to get us an LN_SF that works.
>> Is there a reason against using the simple and portable
>> rm -f somelink
>> ln -s /usr/bin somelink
Yes! There is a reason. That code is not portable nor does it express
what is currently used in libstdc++-v3/include/Makefile.am.
A lot of people are getting stuck on a complete red herring.
Run: find libstdc++-v3 -name 'Makefile*' -exec grep LN_S '{}' \;
On no platform do the libstdc++-v3 Makefiles get built to call 'ln -s
-f'. There is no use of the construct `$(LN_S) -f' (actually that
itself is a minor typo: the construct in automake files is @LN_S@ not
$(LN_S) ). It just doesn't happen. The orignal report that claims we
use ``ln -s -f'' unportably is in error.
> Seems reasonable to me. V3 people, would you look into making this
> change so that the Makefiles are more portable?
It does seem reasonable to make things more portable, but in my mind,
Makefile.am using @LN_S@ is correct. Expanding that in Makefile.am to
use 'rm -f target; ln -s source target' is wrong since the whole
reason to use @LN_S@ was to make things more portable.
Explicit use of rm and ln in Makefile.am is NOT portable.
One correct fix might be to force non-GNU make to ignore the return
code from ln -s like GNU make is doing. I.e.:
(@LN_S@ [...] || true)
Someone might be tempted to convert the construct to
@RM_F@ target; @LN_S@ source target
Be aware that may break a commonly used configuration strategy (that
should have been banned a long time ago...)
BTW, I have no commit access until next week due to local networking
issues that broke my ssh path. I can provide a patch but someone else
will have to bootstrap it and install it.
Regards,
Loren