This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: Make with alpha/Linux
- To: bordenav at ramansco dot ups-tlse dot fr
- Subject: Re: Make with alpha/Linux
- From: Manfred Hollstein <manfred at s-direktnet dot de>
- Date: Mon, 2 Mar 98 12:55:40 +0100
- Cc: egcs-bugs at cygnus dot com, Manfred dot Hollstein at ks dot sel dot alcatel dot de
- References: <1.5.4.32.19980302094738.00696dbc@ramansco.ups-tlse.fr>
- Reply-To: Manfred Hollstein <manfred at s-direktnet dot de>
On Mon, 2 March 1998, 10:47:38, bordenav@ramansco.ups-tlse.fr wrote:
> Hello ,
>
> I work on an Alphastation PWS 500a/500 with Linux 2.0.30 ( Redhat 4.2 )
> I try to install egcs-980221 , I lanch ./configure without problems ,
> my systems is recognized , I change paths of param.h and resource.h
> if necessary in files *.c. I start make , it compils well during few
> minutes but at a moment it make a lot of errors messages like :
>
> relocation truncated to fit : LITTERAL $C*
>
>
> and it stops.
> I don't know this message and I don't understand this.
> If someone has an idea ?
Last week we had a thread (which is still not finally clarified) about
problems with shared libraries, PICFLAG and the like. The problem was
seen only by people using srcdir as their builddir. I sent a patch
which fixes it for me, but haven't heard anything from the original
posters. I don't know if this could be related to your problem,
though.
Anyway, I'll attach the message and append the patch literally. Tell
me, if it helps.
On Thu, 26 February 1998, 08:22:48, manfred@s-direktnet.de wrote:
> On Wed, 25 February 1998, 23:53:16, law@hurl.cygnus.com wrote:
>
> >
> > In message <199802251848.TAA14972@saturn.s-direktnet.de>you write:
> > > > I really suspect, `make distclean' does _not_ clean everything that
> > > > should be removed.
> > Well, I'll give it a spin myself in an empty directory.
>
> Yep, this is what I'll be doing next, too.
>
> >
> >
> > > > I've seen similar problems from another user on SunOS which were
> > > > caused by exactly these circumstances. I advised him to use `distinct
> > > > directories as srcdir and for building', which cured his problem.
> > It has been argued elsewhere, rather successfully that we need to
> > continue to support building in the source directory.
> >
> > As gross and horrible as that sounds we need to avoid making changes
> > which break the ability to build in the source tree -- this is true
> > even if the recommended install procedures specify building in a
> > directory other than the source tree.
>
> I'm sorry if my change did indeed break this. But I wasn't aware of people
> actually configuring and building their stuff in one directory...
OK, I found out what's going on here. The problem does exist since I don't know
when ;-) It's caused by `not finding the ../../config/*pic' files when someone
is configuring and building the runtime libs in the srcdir.
And yes, it's not a problem with make distclean.
But why didn't it show up earlier? Before my PICFLAG patch had been applied
the toplevel Makefile contained and passed the proper contents for PICFLAG
and PICFLAG_FOR_TARGET macros. Because they were passed to sub-makes nobody
recognized that configuration of the target lib{iberty,io,stdc++} actually
failed to locate the ../../config/* frags.
Right now the situation is as follows:
1. The toplevel Makefile doesn't pass down any PICFLAG macro; hence
each Makefile in the subdirs need to insert the contents of one
of the pic related frags as specified in the various configure.in
scripts.
2. When one is building in srcdir those parts in configure.in aren't
able to locate the frags in the toplevel/config directory because
one ../ is missing.
Until someone has a better patch, we should add this one: (and please
_do not build your stuff in srcdir_!)
ChangeLog in libiberty:
Thu Feb 26 17:53:19 1998 Manfred Hollstein <manfred@s-direktnet.de>
* config.table: Add ../ if we are configuring inside srcdir.
ChangeLog in libio:
Thu Feb 26 17:53:19 1998 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in: Add ../ if we are configuring inside srcdir.
ChangeLog in libstdc++:
Thu Feb 26 17:53:19 1998 Manfred Hollstein <manfred@s-direktnet.de>
* configure.in: Add ../ if we are configuring inside srcdir.
diff -r -c -p egcs-980221.orig/libiberty/config.table egcs-980221/libiberty/config.table
*** egcs-980221.orig/libiberty/config.table Sun Feb 1 02:51:20 1998
--- egcs-980221/libiberty/config.table Thu Feb 26 17:47:50 1998
*************** fi
*** 66,71 ****
--- 66,78 ----
echo "# Warning: this fragment is automatically generated" > temp-frag
for frag in ${frags}; do
+ case "${frag}" in
+ ../../config/* )
+ if [ -n "${with_target_subdir}" ] && [ "${srcdir}" = "." ] && [ "${with_target_subdir}" != "." ] ; then
+ frag=../${frag}
+ fi
+ ;;
+ esac
frag=${srcdir}/${xsrcdir}config/$frag
if [ -f ${frag} ]; then
echo "Appending ${frag} to xhost-mkfrag"
diff -r -c -p egcs-980221.orig/libio/configure.in egcs-980221/libio/configure.in
*** egcs-980221.orig/libio/configure.in Mon Feb 23 18:03:21 1998
--- egcs-980221/libio/configure.in Thu Feb 26 17:48:54 1998
*************** case "${target}" in
*** 93,98 ****
--- 93,105 ----
esac
for frag in ${frags}; do
+ case "${frag}" in
+ ../../config/* )
+ if [ -n "${with_target_subdir}" ] && [ "${srcdir}" = "." ] && [ "${with_target_subdir}" != "." ] ; then
+ frag=../${frag}
+ fi
+ ;;
+ esac
frag=${srcdir}/config/$frag
if [ -f ${frag} ]; then
echo "Appending ${frag} to target-mkfrag"
diff -r -c -p egcs-980221.orig/libstdc++/configure.in egcs-980221/libstdc++/configure.in
*** egcs-980221.orig/libstdc++/configure.in Tue Jan 27 23:25:59 1998
--- egcs-980221/libstdc++/configure.in Thu Feb 26 17:50:26 1998
*************** case "${target}" in
*** 65,70 ****
--- 65,77 ----
esac
for frag in ${frags}; do
+ case "${frag}" in
+ ../../config/* )
+ if [ -n "${with_target_subdir}" ] && [ "${srcdir}" = "." ] && [ "${with_target_subdir}" != "." ] ; then
+ frag=../${frag}
+ fi
+ ;;
+ esac
frag=${srcdir}/config/$frag
if [ -f ${frag} ]; then
echo "Appending ${frag} to target-mkfrag"