This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Make with alpha/Linux


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"



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]