Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

libnix build failure #12

Closed
sebastianbergmann opened this issue Mar 15, 2018 · 10 comments
Closed

libnix build failure #12

sebastianbergmann opened this issue Mar 15, 2018 · 10 comments

Comments

@sebastianbergmann
Copy link

Cloning into 'libnix'...
mkdir -p /opt/amiga/m68k-amigaos/libnix/lib/libnix
mkdir -p build/libnix
echo 'void foo(){}' > build/libnix/x.c
if [ ! -e /opt/amiga/m68k-amigaos/libnix/lib/libnix/ncrt0.o ]; then /opt/amiga/bin/m68k-amigaos-gcc -c build/libnix/x.c -o /opt/amiga/m68k-amigaos/libnix/lib/libnix/ncrt0.o; fi
if [ ! -e /opt/amiga/m68k-amigaos/libnix/lib/libnix/libm.a ]; then /opt/amiga/bin/m68k-amigaos-ar r /opt/amiga/m68k-amigaos/libnix/lib/libnix/libm.a; fi
if [ ! -e /opt/amiga/m68k-amigaos/libnix/lib/libnix/libnixmain.a ]; then /opt/amiga/bin/m68k-amigaos-ar r /opt/amiga/m68k-amigaos/libnix/lib/libnix/libnixmain.a; fi
if [ ! -e /opt/amiga/m68k-amigaos/libnix/lib/libnix/libnix.a ]; then /opt/amiga/bin/m68k-amigaos-ar r /opt/amiga/m68k-amigaos/libnix/lib/libnix/libnix.a; fi
if [ ! -e /opt/amiga/m68k-amigaos/libnix/lib/libnix/libnix20.a ]; then /opt/amiga/bin/m68k-amigaos-ar r /opt/amiga/m68k-amigaos/libnix/lib/libnix/libnix20.a; fi
if [ ! -e /opt/amiga/m68k-amigaos/libnix/lib/libnix/libstubs.a ]; then /opt/amiga/bin/m68k-amigaos-ar r /opt/amiga/m68k-amigaos/libnix/lib/libnix/libstubs.a; fi
mkdir -p /opt/amiga/lib/gcc/m68k-amigaos/6.4.1b
if [ ! -e /opt/amiga/lib/gcc/m68k-amigaos/6.4.1b/libgcc.a ]; then /opt/amiga/bin/m68k-amigaos-ar r /opt/amiga/lib/gcc/m68k-amigaos/6.4.1b/libgcc.a; fi
cd build/libnix && CFLAGS="-Os -g -fomit-frame-pointer" AR=m68k-amigaos-ar AS=m68k-amigaos-as CC=m68k-amigaos-gcc  /root/amiga-gcc/projects/libnix/configure --prefix=/opt/amiga/m68k-amigaos/libnix --target=m68k-amigaos --host=m68k-amigaos
checking for m68k-amigaos-CC... m68k-amigaos-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... yes
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether m68k-amigaos-gcc accepts -g... yes
checking for m68k-amigaos-gcc option to accept ISO C89... none needed
checking for m68k-amigaos-ranlib... m68k-amigaos-ranlib
checking for ar... m68k-amigaos-ar
checking for as... m68k-amigaos-as
checking how to run the C preprocessor... m68k-amigaos-gcc -E
checking for gawk... no
checking for mawk... mawk
checking for m68k-amigaos-ranlib... (cached) m68k-amigaos-ranlib
checking for a BSD-compatible install... /usr/bin/install -c
configure: creating ./config.status
config.status: creating Makefile
config.status: creating sources/Makefile
config.status: creating sources/amiga/Makefile
config.status: creating sources/math/Makefile
config.status: creating sources/misc/Makefile
config.status: creating sources/nix/Makefile
config.status: creating sources/nix13/Makefile
config.status: creating sources/nix20/Makefile
config.status: creating sources/nixmain/Makefile
config.status: creating sources/nix_main/Makefile
config.status: creating sources/socket/Makefile
config.status: creating sources/stack/Makefile
config.status: creating sources/startup/Makefile
config.status: creating sources/stubs/Makefile
config.status: creating examples/Makefile
mkdir -p /opt/amiga/m68k-amigaos/libnix/include/
rsync -a projects/libnix/sources/headers/* /opt/amiga/m68k-amigaos/libnix/include/
touch build/libnix/Makefile
cd build/libnix && make
make[1]: Entering directory '/root/amiga-gcc/build/libnix'
mkdir startup
mkdir lib
mkdir libb
mkdir lib020
mkdir libb020
mkdir lib881
mkdir libb881
mkdir libb32
mkdir libb32881
cd sources;	make filelists
make[2]: Entering directory '/root/amiga-gcc/build/libnix/sources'
cd /root/amiga-gcc/projects/libnix/sources/math;	make -f /root/amiga-gcc/build/libnix/sources/Makefile SOURCEFILES="*/*.[cSCh]" FLDIR=/root/amiga-gcc/build/libnix/sources/math /root/amiga-gcc/build/libnix/sources/math/filelist
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/math'
echo "#Computer generated partial Makefile-do not edit" >/root/amiga-gcc/build/libnix/sources/math/filelist
echo "OBJECTS= \\" >>/root/amiga-gcc/build/libnix/sources/math/filelist
( for file in */*.[cSCh]; do echo $file; done ) | \
mawk '{ if($0 !~ /CVS/) { print substr($0,1,length($0)-2) ".o \\" } }' >>/root/amiga-gcc/build/libnix/sources/math/filelist
echo >>/root/amiga-gcc/build/libnix/sources/math/filelist
echo "SUBDIRS= \\" >>/root/amiga-gcc/build/libnix/sources/math/filelist
ls -d -F *|mawk '/\// { if($0 !~ /CVS/) { print substr($0,1,length($0)-1) " \\" } }' >>/root/amiga-gcc/build/libnix/sources/math/filelist
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/math'
cd /root/amiga-gcc/projects/libnix/sources/nix;	make -f /root/amiga-gcc/build/libnix/sources/Makefile SOURCEFILES="*/*.[cSCh]" FLDIR=/root/amiga-gcc/build/libnix/sources/nix /root/amiga-gcc/build/libnix/sources/nix/filelist
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/nix'
echo "#Computer generated partial Makefile-do not edit" >/root/amiga-gcc/build/libnix/sources/nix/filelist
echo "OBJECTS= \\" >>/root/amiga-gcc/build/libnix/sources/nix/filelist
( for file in */*.[cSCh]; do echo $file; done ) | \
mawk '{ if($0 !~ /CVS/) { print substr($0,1,length($0)-2) ".o \\" } }' >>/root/amiga-gcc/build/libnix/sources/nix/filelist
echo >>/root/amiga-gcc/build/libnix/sources/nix/filelist
echo "SUBDIRS= \\" >>/root/amiga-gcc/build/libnix/sources/nix/filelist
ls -d -F *|mawk '/\// { if($0 !~ /CVS/) { print substr($0,1,length($0)-1) " \\" } }' >>/root/amiga-gcc/build/libnix/sources/nix/filelist
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/nix'
cd /root/amiga-gcc/projects/libnix/sources/nix13;	make -f /root/amiga-gcc/build/libnix/sources/Makefile SOURCEFILES="*/*.[cSCh]" FLDIR=/root/amiga-gcc/build/libnix/sources/nix13 /root/amiga-gcc/build/libnix/sources/nix13/filelist
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/nix13'
echo "#Computer generated partial Makefile-do not edit" >/root/amiga-gcc/build/libnix/sources/nix13/filelist
echo "OBJECTS= \\" >>/root/amiga-gcc/build/libnix/sources/nix13/filelist
( for file in */*.[cSCh]; do echo $file; done ) | \
mawk '{ if($0 !~ /CVS/) { print substr($0,1,length($0)-2) ".o \\" } }' >>/root/amiga-gcc/build/libnix/sources/nix13/filelist
echo >>/root/amiga-gcc/build/libnix/sources/nix13/filelist
echo "SUBDIRS= \\" >>/root/amiga-gcc/build/libnix/sources/nix13/filelist
ls -d -F *|mawk '/\// { if($0 !~ /CVS/) { print substr($0,1,length($0)-1) " \\" } }' >>/root/amiga-gcc/build/libnix/sources/nix13/filelist
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/nix13'
cd /root/amiga-gcc/projects/libnix/sources/nix20;	make -f /root/amiga-gcc/build/libnix/sources/Makefile SOURCEFILES="*/*.[cSCh]" FLDIR=/root/amiga-gcc/build/libnix/sources/nix20 /root/amiga-gcc/build/libnix/sources/nix20/filelist
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/nix20'
echo "#Computer generated partial Makefile-do not edit" >/root/amiga-gcc/build/libnix/sources/nix20/filelist
echo "OBJECTS= \\" >>/root/amiga-gcc/build/libnix/sources/nix20/filelist
( for file in */*.[cSCh]; do echo $file; done ) | \
mawk '{ if($0 !~ /CVS/) { print substr($0,1,length($0)-2) ".o \\" } }' >>/root/amiga-gcc/build/libnix/sources/nix20/filelist
echo >>/root/amiga-gcc/build/libnix/sources/nix20/filelist
echo "SUBDIRS= \\" >>/root/amiga-gcc/build/libnix/sources/nix20/filelist
ls -d -F *|mawk '/\// { if($0 !~ /CVS/) { print substr($0,1,length($0)-1) " \\" } }' >>/root/amiga-gcc/build/libnix/sources/nix20/filelist
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/nix20'
cd /root/amiga-gcc/projects/libnix/sources/socket;	make -f /root/amiga-gcc/build/libnix/sources/Makefile SOURCEFILES="*/*.[cSCh]" FLDIR=/root/amiga-gcc/build/libnix/sources/socket /root/amiga-gcc/build/libnix/sources/socket/filelist
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/socket'
echo "#Computer generated partial Makefile-do not edit" >/root/amiga-gcc/build/libnix/sources/socket/filelist
echo "OBJECTS= \\" >>/root/amiga-gcc/build/libnix/sources/socket/filelist
( for file in */*.[cSCh]; do echo $file; done ) | \
mawk '{ if($0 !~ /CVS/) { print substr($0,1,length($0)-2) ".o \\" } }' >>/root/amiga-gcc/build/libnix/sources/socket/filelist
echo >>/root/amiga-gcc/build/libnix/sources/socket/filelist
echo "SUBDIRS= \\" >>/root/amiga-gcc/build/libnix/sources/socket/filelist
ls -d -F *|mawk '/\// { if($0 !~ /CVS/) { print substr($0,1,length($0)-1) " \\" } }' >>/root/amiga-gcc/build/libnix/sources/socket/filelist
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/socket'
cd /root/amiga-gcc/projects/libnix/sources/stack;	make -f /root/amiga-gcc/build/libnix/sources/Makefile SOURCEFILES="*.c" FLDIR=/root/amiga-gcc/build/libnix/sources/stack /root/amiga-gcc/build/libnix/sources/stack/filelist
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/stack'
echo "#Computer generated partial Makefile-do not edit" >/root/amiga-gcc/build/libnix/sources/stack/filelist
echo "OBJECTS= \\" >>/root/amiga-gcc/build/libnix/sources/stack/filelist
( for file in *.c; do echo $file; done ) | \
mawk '{ if($0 !~ /CVS/) { print substr($0,1,length($0)-2) ".o \\" } }' >>/root/amiga-gcc/build/libnix/sources/stack/filelist
echo >>/root/amiga-gcc/build/libnix/sources/stack/filelist
echo "SUBDIRS= \\" >>/root/amiga-gcc/build/libnix/sources/stack/filelist
ls -d -F *|mawk '/\// { if($0 !~ /CVS/) { print substr($0,1,length($0)-1) " \\" } }' >>/root/amiga-gcc/build/libnix/sources/stack/filelist
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/stack'
cd /root/amiga-gcc/projects/libnix/sources/stubs;	make -f /root/amiga-gcc/build/libnix/sources/Makefile STUBDIR=/root/amiga-gcc/build/libnix/sources/stubs libbases/dos.c; \
	make -f /root/amiga-gcc/build/libnix/sources/Makefile SOURCEFILES=" \
	libbases/*.[cSCh] misc/*.c libnames/* stubs/*.[cSCh]" \
	FLDIR=/root/amiga-gcc/build/libnix/sources/stubs /root/amiga-gcc/build/libnix/sources/stubs/filelist
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/stubs'
rm -f libbases/* libnames/*
mawk <library.list '{ sname=substr($2,1,length($2)-8);        \
  fname="libbases/" sname ".c";                      \
  print "/* Machine-generated C-file- do not edit ! */" >fname; \
  print "#include <stabs.h>"                            >fname; \
  print "extern char __" sname "name[];"                >fname; \
  print "void *" $1 "[2]={ 0l,__" sname "name };"      >fname; \
  print "ADD2LIB(" $1 ");"                             >fname; \
  fname="libnames/" sname ".c";                      \
  print "/* Machine-generated C-file- do not edit ! */" >fname; \
  print "char __" sname "name[]=\"" $2 "\";"           >fname;}'
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/stubs'
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/stubs'
echo "#Computer generated partial Makefile-do not edit" >/root/amiga-gcc/build/libnix/sources/stubs/filelist
echo "OBJECTS= \\" >>/root/amiga-gcc/build/libnix/sources/stubs/filelist
( for file in libbases/*.[cSCh] misc/*.c libnames/* stubs/*.[cSCh]; do echo $file; done ) | \
mawk '{ if($0 !~ /CVS/) { print substr($0,1,length($0)-2) ".o \\" } }' >>/root/amiga-gcc/build/libnix/sources/stubs/filelist
echo >>/root/amiga-gcc/build/libnix/sources/stubs/filelist
echo "SUBDIRS= \\" >>/root/amiga-gcc/build/libnix/sources/stubs/filelist
ls -d -F *|mawk '/\// { if($0 !~ /CVS/) { print substr($0,1,length($0)-1) " \\" } }' >>/root/amiga-gcc/build/libnix/sources/stubs/filelist
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/stubs'
cd /root/amiga-gcc/projects/libnix/sources/amiga;	make -f /root/amiga-gcc/build/libnix/sources/Makefile SOURCEFILES="*/*.[cSCh]" FLDIR=/root/amiga-gcc/build/libnix/sources/amiga /root/amiga-gcc/build/libnix/sources/amiga/filelist
make[3]: Entering directory '/root/amiga-gcc/projects/libnix/sources/amiga'
echo "#Computer generated partial Makefile-do not edit" >/root/amiga-gcc/build/libnix/sources/amiga/filelist
echo "OBJECTS= \\" >>/root/amiga-gcc/build/libnix/sources/amiga/filelist
( for file in */*.[cSCh]; do echo $file; done ) | \
mawk '{ if($0 !~ /CVS/) { print substr($0,1,length($0)-2) ".o \\" } }' >>/root/amiga-gcc/build/libnix/sources/amiga/filelist
echo >>/root/amiga-gcc/build/libnix/sources/amiga/filelist
echo "SUBDIRS= \\" >>/root/amiga-gcc/build/libnix/sources/amiga/filelist
ls -d -F *|mawk '/\// { if($0 !~ /CVS/) { print substr($0,1,length($0)-1) " \\" } }' >>/root/amiga-gcc/build/libnix/sources/amiga/filelist
make[3]: Leaving directory '/root/amiga-gcc/projects/libnix/sources/amiga'
make[2]: Leaving directory '/root/amiga-gcc/build/libnix/sources'
cd startup;	make -f /root/amiga-gcc/build/libnix/sources/startup/Makefile V="VER: libnix 2.1b (01.12.2017)"
make[2]: Entering directory '/root/amiga-gcc/build/libnix/startup'
m68k-amigaos-as /root/amiga-gcc/projects/libnix/sources/startup/nrcrt0.S -o nrcrt0.o
m68k-amigaos-as  /root/amiga-gcc/projects/libnix/sources/startup/nbcrt0.S -o nbcrt0.o
m68k-amigaos-as -m68020 /root/amiga-gcc/projects/libnix/sources/startup/nlrcrt0.S -o nlrcrt0.o
m68k-amigaos-as -m68020 /root/amiga-gcc/projects/libnix/sources/startup/nlbcrt0.S -o nlbcrt0.o
m68k-amigaos-as /root/amiga-gcc/projects/libnix/sources/startup/ncrt0.S -o ncrt0.o
m68k-amigaos-gcc -I/root/amiga-gcc/projects/libnix/sources/startup/../headers -O -fomit-frame-pointer -c /root/amiga-gcc/projects/libnix/sources/startup/libinit.c 2>&1|tee libinit.err
In file included from /root/amiga-gcc/projects/libnix/sources/startup/libinit.c:7:0:
/root/amiga-gcc/projects/libnix/sources/startup/../headers/libinit.h:20:24: fatal error: proto/exec.h: No such file or directory
 #include <proto/exec.h>
                        ^
compilation terminated.
if test ! -s libinit.err; then rm libinit.err; fi
m68k-amigaos-gcc -I/root/amiga-gcc/projects/libnix/sources/startup/../headers -O -fomit-frame-pointer -c /root/amiga-gcc/projects/libnix/sources/startup/libinitr.c 2>&1|tee libinitr.err
In file included from /root/amiga-gcc/projects/libnix/sources/startup/libinitr.c:8:0:
/root/amiga-gcc/projects/libnix/sources/startup/../headers/libinit.h:20:24: fatal error: proto/exec.h: No such file or directory
 #include <proto/exec.h>
                        ^
compilation terminated.
if test ! -s libinitr.err; then rm libinitr.err; fi
m68k-amigaos-gcc -I/root/amiga-gcc/projects/libnix/sources/startup/../headers -O -fomit-frame-pointer -c /root/amiga-gcc/projects/libnix/sources/startup/devinit.c 2>&1|tee devinit.err
In file included from /root/amiga-gcc/projects/libnix/sources/startup/devinit.c:7:0:
/root/amiga-gcc/projects/libnix/sources/startup/../headers/libinit.h:20:24: fatal error: proto/exec.h: No such file or directory
 #include <proto/exec.h>
                        ^
compilation terminated.
if test ! -s devinit.err; then rm devinit.err; fi
make[2]: Leaving directory '/root/amiga-gcc/build/libnix/startup'
cd lib; 	make -f /root/amiga-gcc/build/libnix/sources/Makefile V="VER: libnix 2.1b (01.12.2017)" CFLAGS="-Wall -Os -fomit-frame-pointer"
make[2]: Entering directory '/root/amiga-gcc/build/libnix/lib'
( mkdir -p nixmain; cd nixmain; make -f ../../sources/nixmain/Makefile V="VER: libnix 2.1b (01.12.2017)" CFLAGS="-Wall -Os -fomit-frame-pointer" )
make[3]: Entering directory '/root/amiga-gcc/build/libnix/lib/nixmain'
m68k-amigaos-gcc -I/root/amiga-gcc/projects/libnix/sources/nixmain/../headers -Wall -Os -fomit-frame-pointer -S /root/amiga-gcc/projects/libnix/sources/nixmain/__nocommandline.c -o __nocommandline.S 2>&1|tee __nocommandline.err
/root/amiga-gcc/projects/libnix/sources/nixmain/__nocommandline.c:4:24: fatal error: proto/exec.h: No such file or directory
 #include <proto/exec.h>
                        ^
compilation terminated.
m68k-amigaos-gcc -E -traditional -D_DOSBase=___DOSBase -D_UtilityBase=___UtilityBase -D_MathIeeeSingBasBase=___MathIeeeSingBasBase -D_MathIeeeSingTransBase=___MathIeeeSingTransBase -D_MathIeeeDoubBasBase=___MathIeeeDoubBasBase -D_MathIeeeDoubTransBase=___MathIeeeDoubTransBase -D_LocaleBase=___LocaleBase __nocommandline.S -o __nocommandline__2.S
m68k-amigaos-gcc: error: __nocommandline.S: No such file or directory
m68k-amigaos-gcc: fatal error: no input files
compilation terminated.
../../sources/nixmain/Makefile:30: recipe for target '__nocommandline.o' failed
make[3]: Leaving directory '/root/amiga-gcc/build/libnix/lib/nixmain'
make[3]: *** [__nocommandline.o] Error 1
/root/amiga-gcc/build/libnix/sources/Makefile:38: recipe for target 'nixmain' failed
make[2]: Leaving directory '/root/amiga-gcc/build/libnix/lib'
make[2]: *** [nixmain] Error 2
Makefile:43: recipe for target 'all' failed
make[1]: Leaving directory '/root/amiga-gcc/build/libnix'
make[1]: *** [all] Error 2
Makefile:522: recipe for target 'build/libnix/_done' failed
@bebbo
Copy link
Owner

bebbo commented Mar 15, 2018

Can't reproduce!

Did you use an empty prefix folder?

pls run make clean clean-prefix to erase everything. Beware: if you copied own headers and libs into your prefix those files will vanish too, so make a backup!

@sebastianbergmann
Copy link
Author

Everything is clean since I build inside a Docker container (minimal Ubuntu 18.04 + dependencies required for this). I am in the process of porting https://github.com/sebastianbergmann/docker-amigaos-cross-toolchain from https://github.com/bebbo/amigaos-cross-toolchain to https://github.com/bebbo/amiga-gcc.

At the beginning of the build /opt is empty (/opt/amiga, the prefix folder, does not exist).

@sebastianbergmann
Copy link
Author

mkdir -p /opt/amiga before make all does not fix the issue.

@sebastianbergmann
Copy link
Author

sebastianbergmann commented Mar 15, 2018

Complete output is here.

@bebbo
Copy link
Owner

bebbo commented Mar 15, 2018

you have to run make update first, then make all

@bebbo
Copy link
Owner

bebbo commented Mar 15, 2018

Howto Clone and Download All You Need

git clone https://github.com/bebbo/amiga-gcc
cd amiga-gcc
make update

@sebastianbergmann
Copy link
Author

I assumed update to be a dependency of all, my bad.

However, I still run into this problem when I do make update before make all.

@bebbo
Copy link
Owner

bebbo commented Mar 28, 2018

please test

@sebastianbergmann
Copy link
Author

Seems to work now. Thanks!

Sidenote: Just make all does not work, neither does make update all. I have to do make update and make all in separate steps. Does not make sense but for now I am able to build amiga-gcc.

@bebbo
Copy link
Owner

bebbo commented Mar 29, 2018

Sidenote: Just make all does not work, neither does make update all. I have to do make update and make all in separate steps. Does not make sense but for now I am able to build amiga-gcc.

Without an first update some dependencies are not present and aren't found via find ....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants