public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* Ada-3.1.1 Makefile Madness
@ 2002-08-08  8:09 Michael S. Zick
  2002-08-08 12:11 ` Florian Weimer
  0 siblings, 1 reply; 7+ messages in thread
From: Michael S. Zick @ 2002-08-08  8:09 UTC (permalink / raw)
  To: gcc

Hi folks...

I seem to have a makefile problem here while bootstraping gcc-3.1.1<c,ada>.

While following the <release>/INSTALL#build.html instructions for building a 
native Ada... 
When I reach the "make gnatlib_and_tools" step from within 
<release>/gcc-bld/gcc...
The archive building fails.

Descending into <release>/gcc-bld/gcc/ada and trying "make gnatlib" allowed 
me to capture the attached text which seems to indicate what is going wrong...

The "ar...." command expects the objects (except for "prefix.o") to be in the 
<release>/gcc-bld/gcc/ada/rts directory.
The two prior calls to "make" found SOME of them in <release>/gcc-bld/gcc/ada 
but didn't build, move or link them into <release>/gcc-bld/ada/rts.

To continue my build, I hand "cp -p 'd" the missing *.o's into rts and 
everything else seemed to work.

Would it be possible to get a "Makefile" generated in 
<release>/gcc-bld/ada/rts that understands how to go from ../*.ads -> *.o and 
also use mt-frag and mh-frag as appropriate?

The existing makefile (Makefile.adalib) in "rts" will build the *.o's in that 
directory but complains about the missing archives (which are yet to be 
built).

I have made a few other comments in the attached "cut and paste" of the build 
output text attached.

Mike
Attachment:
ada-3.1.1-fail.txt
Description: Make output text

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada-3.1.1 Makefile Madness
  2002-08-08  8:09 Ada-3.1.1 Makefile Madness Michael S. Zick
@ 2002-08-08 12:11 ` Florian Weimer
  2002-08-08 16:17   ` Michael S. Zick
  0 siblings, 1 reply; 7+ messages in thread
From: Florian Weimer @ 2002-08-08 12:11 UTC (permalink / raw)
  To: Michael S. Zick; +Cc: gcc

Michael S. Zick <mszick@goquest.com> writes:

> When I reach the "make gnatlib_and_tools" step from within 
> <release>/gcc-bld/gcc...

Your build directory is inside the source directory tree.  Maybe
that's causing the problems you are seeing.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada-3.1.1 Makefile Madness
  2002-08-08 12:11 ` Florian Weimer
@ 2002-08-08 16:17   ` Michael S. Zick
  2002-08-09  0:11     ` Andris Pavenis
  0 siblings, 1 reply; 7+ messages in thread
From: Michael S. Zick @ 2002-08-08 16:17 UTC (permalink / raw)
  To: Florian Weimer; +Cc: gcc

On Thursday 08 August 2002 02:11 pm, Florian Weimer wrote:
> Michael S. Zick <mszick@goquest.com> writes:
> > When I reach the "make gnatlib_and_tools" step from within
> > <release>/gcc-bld/gcc...
>
> Your build directory is inside the source directory tree.  Maybe
> that's causing the problems you are seeing.

Could well be the problem.
The instructions do say: "...where objdir is a subdirectory of srcdir ... 
unsupported..."

BUT - that I was able to get to work with a little file copying.

The organization: <something>/<release>/gcc .... with building in:
<something>/<bld-gcc>/ .... is a total loser on my machine.

The instructions do say: "... some broken make's ... where srcdir is 
seperate from objdir ... fail".  (No shit!)

So, Question: "What is the minimum REQUIRED version of gnu-make to 
successfully build gcc-3.1.1<c, ada>?   (Note the "Ada").

Mike

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada-3.1.1 Makefile Madness
  2002-08-08 16:17   ` Michael S. Zick
@ 2002-08-09  0:11     ` Andris Pavenis
  2002-08-09  6:35       ` Michael S. Zick
  0 siblings, 1 reply; 7+ messages in thread
From: Andris Pavenis @ 2002-08-09  0:11 UTC (permalink / raw)
  To: Michael S. Zick; +Cc: gcc

On Friday 09 August 2002 02:07, Michael S. Zick wrote:
> On Thursday 08 August 2002 02:11 pm, Florian Weimer wrote:
> > Michael S. Zick <mszick@goquest.com> writes:
> > > When I reach the "make gnatlib_and_tools" step from within
> > > <release>/gcc-bld/gcc...
> >
> > Your build directory is inside the source directory tree.  Maybe
> > that's causing the problems you are seeing.
>
> Could well be the problem.
> The instructions do say: "...where objdir is a subdirectory of srcdir ...
> unsupported..."

It didn't work also for me (target i586-pc-msdosdjgpp). Moving build directory 
out of source directory and specifying absolute path to sources worked

>
> BUT - that I was able to get to work with a little file copying.
>
> The organization: <something>/<release>/gcc .... with building in:
> <something>/<bld-gcc>/ .... is a total loser on my machine.
>
> The instructions do say: "... some broken make's ... where srcdir is
> seperate from objdir ... fail".  (No shit!)
>
> So, Question: "What is the minimum REQUIRED version of gnu-make to
> successfully build gcc-3.1.1<c, ada>?   (Note the "Ada").

make-3.79.1 worked OK for me.

Andris

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada-3.1.1 Makefile Madness
  2002-08-09  0:11     ` Andris Pavenis
@ 2002-08-09  6:35       ` Michael S. Zick
  2002-08-09 10:00         ` Michael S. Zick
  0 siblings, 1 reply; 7+ messages in thread
From: Michael S. Zick @ 2002-08-09  6:35 UTC (permalink / raw)
  To: Andris Pavenis; +Cc: gcc

On Friday 09 August 2002 02:09 am, Andris Pavenis wrote:
> On Friday 09 August 2002 02:07, Michael S. Zick wrote:
> > On Thursday 08 August 2002 02:11 pm, Florian Weimer wrote:
> > > Michael S. Zick <mszick@goquest.com> writes:
> > > > When I reach the "make gnatlib_and_tools" step from within
> > > > <release>/gcc-bld/gcc...
> > >
> > > Your build directory is inside the source directory tree.  Maybe
> > > that's causing the problems you are seeing.
> >
> > Could well be the problem.
> > The instructions do say: "...where objdir is a subdirectory of srcdir ...
> > unsupported..."
>
> It didn't work also for me (target i586-pc-msdosdjgpp). Moving build
> directory out of source directory and specifying absolute path to sources
> worked

On host: i686-pc-linux-gnu (Redhat 7.1 installation style), where original 
software exists in: /usr/bin... & /usr/lib...

Using gnat-3.13p-8 (complete, rpm, binary, install) from www.gnuada.org
which also installs in /usr/bin & /usr/lib...

Ensuring that /usr/bin is first entry in $PATH and specifying: 
export CC=/usr/bin/gnatgcc
Almost works...  If (or when) bootstrap exits with an "ensure you are using a 
compatiable gcc/gnatbind" message... Specify:
export GNATBIND=/usr/bin/gnatbind

Once an initial gcc-3.1.1<ada,c> is built and installed in: <somewhere>/bin & 
<somewhere>/lib...  Specify:
export CC=<somewhere>/gcc
export GNATBIND=<somewhere>/gnatbind
To also get the tools (components) used by the Makefile:bootstrap that don't 
have a variable to hold the current absolute path...  Specify:
export PATH=<somewhere>:$PATH

At which point things get a little iffy during the initial stage of building 
for the stage1 compiler and tools.
The Makefiles hardcode: "../xgcc -B../" used AFTER the building of the stage1 
compiler and tools...

My mind "vapor locks" whenever I try to read these Makefiles - So if a 
Makefile expert could comment on the following:

1) Do away with the use of "GNATBIND" - it only handles "gnatbind" not the 
other gnat tools.
2) Provide ability to specify the absolute paths used during the initial 
building of the stage1 compiler and tools, perhaps like:
export INITIAL_ADA_PATH=<somewhere>
During initial build for stage1 would give:
ADAC=$(INITIAL_ADA_PATH)/$(compiler_that_understands_Ada)
and:
$(INITIAL_ADA_PATH)/gnatbind 
and:
$(INITIAL_ADA_PATH)/<any_other_Ada_tools_used>

I am using binutils-2.13 installed <somewhere>/bin & <somewhere>/lib
I am using the configure options to specify "as" and "ld" to be the 
<somewhere>/bin/as & <somewhere>/bin/ld
BUT, like the problem of not getting matching Ada tools above...

3) Provide ability to specify the absolute paths used during the initial 
building of the stage1 compiler and tools, perhaps like:
export INITIAL_BTOOLS_PATH=<somewhere>/bin
During initial build for stage1 (and other stages if not building new 
binutils in a composite tree), all the non-Ada tools (ar, nm, etc.) would be:
$(INITIAL_BTOOLS_PATH)/nm
$(INITIAL_BTOOLS_PATH)/ar
$(INITIAL_BTOOLS_PATH)/<whatever>
Note: this could also replace the "--with-as= & --with-ld=" configure options.
If building in a composite tree (I am not) - then once the stage1 build is 
complete, those things would become:
$(OUR_NEW_BTOOLS_PATH)/nm
$(OUR_NEW_BTOOLS_PATH)/as
$(OUR_NEW_BTOOLS_PATH)/<whatever>

Of course, all of the above suggestions would have to account for:

HOST_SYSTEM, TARGET_SYSTEM, and BUILD_SYSTEM when not building a native 
compilier / toolset.

Groan.
>
> > BUT - that I was able to get to work with a little file copying.
> >
> > The organization: <something>/<release>/gcc .... with building in:
> > <something>/<bld-gcc>/ .... is a total loser on my machine.
> >
> > The instructions do say: "... some broken make's ... where srcdir is
> > seperate from objdir ... fail".  (No shit!)

I have repeated the bootstrap with the build directory totally seperate from 
the source directory - Once I finish groking this 30MB log file produced by 
"make -d -p bootstrap" I may have more information.

> >
> > So, Question: "What is the minimum REQUIRED version of gnu-make to
> > successfully build gcc-3.1.1<c, ada>?   (Note the "Ada").
>
> make-3.79.1 worked OK for me.

Humm.  I am using make-3.79.1-5 (Redhat-5) there is a make-3.79.1-8 
(Redhat-8), I'll try that also.

Mike
>
> Andris

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada-3.1.1 Makefile Madness
  2002-08-09  6:35       ` Michael S. Zick
@ 2002-08-09 10:00         ` Michael S. Zick
  2002-08-09 14:33           ` Michael S. Zick
  0 siblings, 1 reply; 7+ messages in thread
From: Michael S. Zick @ 2002-08-09 10:00 UTC (permalink / raw)
  To: gcc

On Friday 09 August 2002 08:25 am, Michael S. Zick wrote:
> On Friday 09 August 2002 02:09 am, Andris Pavenis wrote:
> > On Friday 09 August 2002 02:07, Michael S. Zick wrote:
> > > On Thursday 08 August 2002 02:11 pm, Florian Weimer wrote:
> Michael S. Zick <mszick@goquest.com> writes:
>
> I have repeated the bootstrap with the build directory totally seperate
> from the source directory - Once I finish groking this 30MB log file
> produced by "make -d -p bootstrap" I may have more information.
>
In follow-up:

The directories:
<somewhere>/gcc-bld/gcc/stage1 
<somewhere>/gcc-bld/gcc/stage2
<somewhere>/gcc-bld/gcc/ada/stage1
<somewhere>/gcc-bld/gcc/ada/stage2
are present.

There is NOT a directory:
<somewhere>/gcc-bld/gcc/stage3

The directory links:
<somewhere>/gcc-bld/gcc/ada/stage3
<somewhere>/gcc-bld/gcc/ada/stage4
point nowhere.

The following is what appears to be the key 46 lines from my 499,751 line log 
file:
 - - - - a really big SNIP - - - -

# Finished Make data base on Thu Aug  8 23:33:46 2002

# make[2]: Leaving directory `/home/mszick/SRC/bld-gcc/gcc'
Got a SIGCHLD; 1 unreaped children.
Reaping winning child 0x080b8bf0 PID 26761
echo timestamp > stage3_build
Child access: user 500 (real 500), group 500 (real 500)
Live child 0x080b8bf0 (stage3_build) PID 29231
Got a SIGCHLD; 1 unreaped children.
Reaping winning child 0x080b8bf0 PID 29231
echo stage3_build > stage_last
Child access: user 500 (real 500), group 500 (real 500)
Live child 0x080b8bf0 (stage3_build) PID 29232
Got a SIGCHLD; 1 unreaped children.
Reaping winning child 0x080b8bf0 PID 29232
Removing child 0x080b8bf0 PID 29232  from chain.
  Successfully remade target file `stage3_build'.
 Finished prerequisites of target file `bootstrap'.
Must remake target `bootstrap'.
Child access: user 500 (real 500), group 500 (real 500)

 - - Sorry Folks, I didn't snip anything here...
 - - stage3:bootstrap just returns as complete

Got a SIGCHLD; 2 unreaped children.
Putting child 0x080d77e8 (bootstrap) PID 29233 on the chain.
Live child 0x080d77e8 (bootstrap) PID 29233
Reaping winning child 0x080d77e8 PID 29233
Child access: user 500 (real 500), group 500 (real 500)
Live child 0x080d77e8 (bootstrap) PID 29234
Bootstrap complete - make "quickstrap" to redo last build,
Got a SIGCHLD; 1 unreaped children.
Reaping winning child 0x080d77e8 PID 29234
Child access: user 500 (real 500), group 500 (real 500)
Live child 0x080d77e8 (bootstrap) PID 29235
"restage1" through "restage3" to rebuild specific stages,
Got a SIGCHLD; 1 unreaped children.
Reaping winning child 0x080d77e8 PID 29235 
Child access: user 500 (real 500), group 500 (real 500)
Live child 0x080d77e8 (bootstrap) PID 29236 
or "cleanstrap" to redo the bootstrap from scratch.
Got a SIGCHLD; 1 unreaped children.
Reaping winning child 0x080d77e8 PID 29236
Removing child 0x080d77e8 PID 29236  from chain.
Successfully remade target file `bootstrap'.

# Make data base, printed on Thu Aug  8 23:33:46 2002

 - - - - end snip - - - -

Note the "Bootstrap complete" message above, even though "make 
stage3:bootstrap" only returned.

Mike

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Ada-3.1.1 Makefile Madness
  2002-08-09 10:00         ` Michael S. Zick
@ 2002-08-09 14:33           ` Michael S. Zick
  0 siblings, 0 replies; 7+ messages in thread
From: Michael S. Zick @ 2002-08-09 14:33 UTC (permalink / raw)
  To: gcc

On Friday 09 August 2002 11:49 am, Michael S. Zick wrote:
> On Friday 09 August 2002 08:25 am, Michael S. Zick wrote:
> > On Friday 09 August 2002 02:09 am, Andris Pavenis wrote:
> > > On Friday 09 August 2002 02:07, Michael S. Zick wrote:
> > > > On Thursday 08 August 2002 02:11 pm, Florian Weimer wrote:
> >
> > Michael S. Zick <mszick@goquest.com> writes:
> >
> > I have repeated the bootstrap with the build directory totally seperate
> > from the source directory - Once I finish groking this 30MB log file
> > produced by "make -d -p bootstrap" I may have more information.
>
> In follow-up:
>
> Note the "Bootstrap complete" message above, even though "make
> stage3:bootstrap" only returned.
>
</End-Panic>

I have completed three, full bootstraps (each using the generated compiler 
and tools) now.  Think of it as a 9-Stage bootstrap.

Four of the Ada tools varied by a few bytes during the second build;
gnat, gnatfind, and gnatkr - each by 32 bytes;
gnatprep by 64 bytes.

The second and third builds are identical in all filesizes.

I have diff'd all three build logs ("make -d -p ...") and found only the 
expected differences (times, pids, etc).

Conclusions:  
1) Massive "Cockpit Error" at my keyboard.
2) The makefile's are doing the build as intended, although not quite in the 
way described.

I will post a standard completion report RSN, with some tips to other "first 
timers" in the body.

I will work on revising those files in <release>/INSTALL to perhaps make the 
instructions a little more clear and consistant.

Thanks for everybody's time on the list.

Mike

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2002-08-09 14:33 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-08-08  8:09 Ada-3.1.1 Makefile Madness Michael S. Zick
2002-08-08 12:11 ` Florian Weimer
2002-08-08 16:17   ` Michael S. Zick
2002-08-09  0:11     ` Andris Pavenis
2002-08-09  6:35       ` Michael S. Zick
2002-08-09 10:00         ` Michael S. Zick
2002-08-09 14:33           ` Michael S. Zick

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).