how to fix the issue "Makefrag:68: recipe for target 'simv-freechips.rocketchip.system-DefaultConfig' failed" - rocket-chip

I am trying to build rocketchip & vsim for the same as described here
But I am stuck at vsim run while doing below:
koushik#koushik-Presario-CQ43-Notebook-PC:~/riscv_ks/rocket-chip/vsim$ make -j2 run
mkdir -p ./output
cd . && \
rm -rf csrc && \
vcs -full64 -notice -line +lint=all,noVCDE,noONGS,noUI -error=PCWM-L -timescale=1ns/10ps -quiet +rad +v2k +vcs+lic+wait +vc+list -CC "-I/include" -CC "-I/home/koushik/riscvtools/include" -CC "-std=c++11" -CC "-Wl,-rpath,/home/koushik/riscvtools/lib" /home/koushik/riscvtools/lib/libfesvr.so -sverilog +incdir+/home/koushik/riscv_ks/rocket-chip/vsim/generated-src +define+CLOCK_PERIOD=1.0 /home/koushik/riscv_ks/rocket-chip/vsim/generated-src/freechips.rocketchip.system.DefaultConfig.v /home/koushik/riscv_ks/rocket-chip/vsim/generated-src/freechips.rocketchip.system.DefaultConfig.behav_srams.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/TestDriver.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/SimDTM.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/SimJTAG.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/plusarg_reader.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/ClockDivider2.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/ClockDivider3.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/AsyncResetReg.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/vsrc/EICG_wrapper.v /home/koushik/riscv_ks/rocket-chip/src/main/resources/csrc/SimDTM.cc /home/koushik/riscv_ks/rocket-chip/src/main/resources/csrc/SimJTAG.cc /home/koushik/riscv_ks/rocket-chip/src/main/resources/csrc/remote_bitbang.cc +define+PRINTF_COND=TestDriver.printf_cond +define+STOP_COND=!TestDriver.reset +define+RANDOMIZE_MEM_INIT +define+RANDOMIZE_REG_INIT +define+RANDOMIZE_GARBAGE_ASSIGN +define+RANDOMIZE_INVALID_ASSIGN +define+RANDOMIZE_DELAY=2 +libext+.v -o ./simv-freechips.rocketchip.system-DefaultConfig \
-debug_pp \
ln -fs /home/koushik/riscvtools/riscv64-unknown-elf/share/riscv-tests/isa/rv64um-v-mul output/rv64um-v-mul
/bin/bash: line 2: vcs: command not found
Makefrag:68: recipe for target 'simv-freechips.rocketchip.system-DefaultConfig' failed
make: *** [simv-freechips.rocketchip.system-DefaultConfig] Error 127
make: *** Waiting for unfinished jobs....

You don't have VCS installed so its failing to find the command that runs it.
Try "make verilog", this should created the default configuration of rocket-chip.
or if you want to create one of the other canned configurations in Config.scala then you can use "make CONFIG=TinyConfig verilog" where TinyConfig can be replaced with any of the canned configurations.
Thanks,
Ciaran

Related

Buildroot problem with libicudata. What's this?

When I try to build system with buildroot I have problem with makin libicudata.
make[2]: Entering directory '/home/ser-builder2/buildroot/output/build/icu-64-2/source/data'
/bin/bash ../mkinstalldirs /home/ser-builder2/buildroot/output/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib
LD_LIBRARY_PATH=/home/ser-builder2/buildroot/output/build/host-icu-64-2/source/stubdata:/home/ser-builder2/buildroot/output/build/host-icu-64-2/source/tools/ctestfw:/home/ser-builder2/buildroot/output/build/host-icu-64-2/source/lib:$LD_LIBRARY_PATH /home/ser-builder2/buildroot/output/build/host-icu-64-2/source/bin/pkgdata -O ../data/icupkg.inc -q -c -s /home/ser-builder2/buildroot/output/build/icu-64-2/source/data/out/build/icudt64l -d ../lib -m dll -r 64.2 -e icudt64 -T ./out/tmp -s ./out/build/icudt64l -p icudt64l -L icudata ./out/tmp/icudata.lst -I /home/ser-builder2/buildroot/output/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib
pkgdata: cd ../lib/ && /usr/bin/install -c libicudata.so.64.2 /home/ser-builder2/buildroot/output/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib/libicudata.so.64.2
pkgdata: cd /home/ser-builder2/buildroot/output/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib && rm -f libicudata.so.64 && ln -s libicudata.so.64.2 libicudata.so.64
Segmentation fault (core dumped)
-- return status = 35584
Error creating symbolic links. Failed command: cd /home/ser-builder2/buildroot/output/host/x86_64-buildroot-linux-gnu/sysroot/usr/lib && rm -f libicudata.so.64 && ln -s libicudata.so.64.2 libicudata.so.64
Makefile:180: recipe for target 'install-local' failed
make[2]: *** [install-local] Error 1
make[2]: Leaving directory '/home/ser-builder2/buildroot/output/build/icu-64-2/source/data'
Makefile:153: recipe for target 'install-recursive' failed
make[1]: *** [install-recursive] Error 2
make[1]: Leaving directory '/home/ser-builder2/buildroot/output/build/icu-64-2/source'
package/pkg-generic.mk:278: recipe for target '/home/ser-builder2/buildroot/output/build/icu-64-2/.stamp_staging_installed' failed
make: *** [/home/ser-builder2/buildroot/output/build/icu-64-2/.stamp_staging_installed] Error 2
I don't know what to do with this. I tried to build this on another computer and everything works fine.
I run into this problem too and tracked it down to the execution of pkgdata. Somehow LD_LIBRARY_PATH got screwed which causes '/usr/bin/rm' to fail. To solve it, I've modified Makefile.in and removed LD_LIBRARY_PATH=... from the invocation line.
diff -r -u a/source/Makefile.in b/source/Makefile.in
--- a/source/Makefile.in 2022-06-02 10:48:31.493046292 +0200
+++ b/source/Makefile.in 2022-06-02 11:25:57.303758900 +0200
## -258,7 +258,7 ##
#(echo 'TOOLBINDIR=$$(cross_buildroot)/bin' ;\
echo 'TOOLLIBDIR=$$(cross_buildroot)/lib' ;\
echo "INVOKE=$(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)"'$$(TOOLLIBDIR):$$(cross_buildroot)/stubdata:$$(cross_buildroot)/tools/ctestfw:$$$$'"$(LDLIBRARYPATH_ENVVAR)" ;\
- echo "PKGDATA_INVOKE=$(LDLIBRARYPATH_ENVVAR)=$(LIBRARY_PATH_PREFIX)"'$$(cross_buildroot)/stubdata:$$(cross_buildroot)/tools/ctestfw:$$(TOOLLIBDIR):$$$$'"$(LDLIBRARYPATH_ENVVAR) " ;\
+ echo "PKGDATA_INVOKE= " ;\
echo ) >> $#
config/icucross.inc: $(top_builddir)/icudefs.mk $(top_builddir)/Makefile #platform_make_fragment#
I know that this question is quite old now, but I want to mention it if someone else will run into this.

MLton on Alpine Linux

I am encountering problems to install and run the MLton compiler in a Docker container using Alpine Linux.
Is there a way to install this compiler on this system?
Try #1
Using the standard `alpine base image and the binary distribution of MLton:
$ curl http://sourceforge.net/projects/mlton/files/mlton/20130715/mlton-20130715-1.amd64-linux.tgz --output mlton-20130715-1.amd64-linux.tgz
$ docker build .
With the following Dockerfile:
FROM alpine
COPY mlton-20130715-1.amd64-linux.tgz /
RUN apk add --no-cache bash build-base gmp-dev linux-headers \
&& tar xf /mlton-20130715-1.amd64-linux.tgz \
--directory /usr/ \
--strip-components 1 \
&& echo 'print "Hello, world!\n";' >> hello-world.sml \
&& mlton hello-world.sml
Docker build fails with the following error message, probably because glibc is missing.
/usr/bin/mlton: line 52: /usr/lib/mlton/mlton-compile: No such file or directory
Try #2
The same as above, with a base Docker image that embeds glibc:
FROM frolvlad/alpine-glibc
This time, mlton runs, but produces the following error:
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: /usr/lib/mlton/targets/self/libmlton.a(platform.o): relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
...
/usr/lib/gcc/x86_64-alpine-linux-musl/6.4.0/../../../../x86_64-alpine-linux-musl/bin/ld: final link failed: Nonrepresentable section on output
collect2: error: ld returned 1 exit status
call to system failed with exit status 1:
gcc -o hello-world /tmp/fileGEluFu.o /tmp/fileYnNjh9.o -L/usr/lib/mlton/targets/self -lmlton -lgdtoa -lm -lgmp -m64 -Wl,-znoexecstack
Any idea on how to solve this problem?

unable to build binutils for my cross compiler

i am trying to build binutils 2.19.1 with mingw/msys using following commands:
export PREFIX=/usr/local/cross
export TARGET=i586-elf
cd /usr/src
mkdir build-binutils
cd /usr/src/build-binutils
../binutils-x.xx/configure --target=$TARGET --prefix=$PREFIX --disable-nls
make all
make install
and im getting following errors:
/bin/sh ./libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I../../binuti
ls-2.19.1/bfd -I. -D__USE_MINGW_FSEEK -I. -I../../binutils-2.19.1/bfd -I../..
/binutils-2.19.1/bfd/../include -W -Wall -Wstrict-prototypes -Wmissing-proto
types -Wno-format -Werror -g -O2 -D__USE_MINGW_ACCESS -c -o archive.lo ../../bin
utils-2.19.1/bfd/archive.c
./libtool: line 2258: cygpath: command not found
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I../../binutils-2.19.1/bfd -I. -D__U
SE_MINGW_FSEEK -I. -I../../binutils-2.19.1/bfd -I../../binutils-2.19.1/bfd/../in
clude -W -Wall -Wstrict-prototypes -Wmissing-prototypes -Wno-format -Werror -g -
O2 -D__USE_MINGW_ACCESS -c "" -o archive.o
gcc.exe: error: : No such file or directory
gcc.exe: fatal error: no input files
compilation terminated.
make[3]: *** [archive.lo] Error 1
make[3]: Leaving directory `/usr/src/build-binutils/bfd'
make[2]: *** [install-recursive] Error 1
make[2]: Leaving directory `/usr/src/build-binutils/bfd'
make[1]: *** [install-bfd] Error 2
make[1]: Leaving directory `/usr/src/build-binutils'
make: *** [install] Error 2
/x.sh: line 8: ../gcc-4.5.0/configure: No such file or directory
make: *** No rule to make target `all-gcc'. Stop.
make: *** No rule to make target `install-gcc'. Stop.
i am getting the same error even for the diff binutils version,i have tried binutils-2.19.1, 2.22.0, 2.23.1
so what can be the problem ??
also my mingw's gcc compiler version is 4.6.2
i've also tried the command
make CFLAGS="-Os -w"
bt still the same problem persists
I'm getting a similar error ("cygpath: command not found"), but with newer versions. FWICT there is a line within binutils that assumes that Cygwin is present, although I didn't see any notes in the build instructions saying that Cygwin was required (I might have missed it, though).
I suppose the correct approach would be to install Cygwin, but I'm not sure if that will interfere with Mingw in other ways. It looks like binutils is just trying to use cygpath to convert between O/S path naming conventions, so I got around this problem by creating a little dummy cygpath shell script:
#options described at http://cygwin-lite.sourceforge.net/html/cygpath.html
#echo "MISSING CYGPATH"
if [ "x$1" == "x-w" ]
then
echo $2 #just echo path name back as-is
else
read -p "MISSING CYGPATH. PARAMS WERE: 1=$1 2=$2 3=$3 4=$4 5=$5"
fi
I placed this on the PATH so binutils could find it, instead of getting an error during the build. This script just echoes the path name back as-is (for the path renaming scenario), since Windows seems to be able to understand Unix-style paths anyways these days (and I was running on Windows). For anything else, this script will pause and display the first few command line parameters, to provide some hints as to what further functionality is needed.
HTH someone get a little farther

UIAutomation : Failed to authorize rights with status: -60007

So I am running UIAutomation on command line with
$ instruments -t /Developer/Platforms/iPhoneOS.platform/Developer/Library/Instruments/PlugIns/AutomationInstrument.bundle/Contents/Resources/Automation.tracetemplate
<path-to-your-app>/<appname>.app/ -e UIASCRIPT <path-to-your-js-test-file> -e
UIARESULTSPATH <path-to-results-folder>
This works fine and the simulator opens up, and the app runs, but gets stuck with this error.
Failed to authorize rights (0x2) with status: -60007
I believe it has something to do with the permissions.
How do I go about this ?
That's the answer I posted at Instruments via command line - jenkins
And here is even a blog post about Xcode command line authorization prompt error
I will explain it again here:
What I did was the following:
Mark jenkins user as admin (unfortunately it seems that there is no other way atm)
Go to /etc/authorization
search for key system.privilige.taskport
change value of allow-root to true
<key>system.privilege.taskport</key>
<dict>
<key>allow-root</key>
<false/> // change to -> <true>
<key>class</key>
<string>user</string>
<key>comment</key>
<string>Used by task_for_pid(...).
...
</dict>
Now I am being able to use jenkins to run my UIAutomation-Tests via Command Line Script
EDIT
To make jenkins recognize a successfull build, I have not a perfect solution but the following workaround:
...
echo "Run instruments simulator"
instruments -t "$ORDER_AUTOMATION_TEST_TEMPLATE_PATH" "$FILE_DEBUG_APP" -e UIASCRIPT "$ORDER_AUTOMATION_TESTSCRIPT_PATH" -e UIARESULTSPATH "$DIRECTORY_INSTRUMENTS_RESULT"
returnCode=0
if test -a "Run 1/Assertion failed.png"; then
echo "failed"
returnCode=1
else
echo "passed"
returnCode=0
fi
rm -fR "Run 1"
rm -fR "instrumentscli0.trace"
echo "Removing app dir"
echo "$FILE_APPLICATIONS"
rm -fR "$FILE_APPLICATIONS"
echo $returnCode
exit $returnCode
EDIT 2
Better way to check if automation test did run successfully:
# cleanup the tracefiles produced from instruments
rm -rf *.trace
##kill simulator afterwards
killall "iPhone Simulator"
##check if failures occured
# fail script if any failures have been generated
if [ `grep "<string>Error</string>" "$WORKSPACE/Automation Results/Run 1/Automation Results.plist" | wc -l` -gt 0 ]; then
echo 'Build Failed'
exit -1
else
echo 'Build Passed'
exit 0
fi
This can help on Mavericks and Yosemite: (based on Alexander's answer)
$ security authorizationdb write system.privilege.taskport allow

Recipe for target `autoloads' failed while building Emacs in Cygwin

I am trying to build Emacs on 64-bit Windows 7 using Cyqwin:
Emacs 23.3 or 23.4
CYGWIN_NT-6.1-WOW64 1.7.11(0.260/5/3) 2012-02-24 14:05 i686 Cygwin
Some info from ./configure log:
What compiler should emacs be built with?
gcc -g -O2 -Wdeclarati
What operating system and machine description files should Emacs use?
`s/cygwin.h' and `m/intel386.h'
I am able to create Makefile without problems. However, if I run make procedure, it is building for couple of minutes then, in certain point, it gets stuck for 2 minutes and then produces error:
Makefile:149: recipe for target `autoloads' failed
make[2]: *** [autoloads] Interrupt
Makefile:198: recipe for target `/cygdrive/c/emacs-23.3/src/../lisp/loaddefs.el' failed
make[1]: *** [/cygdrive/c/emacs-23.3/src/../lisp/loaddefs.el] Interrupt
Makefile:339: recipe for target `src' failed
make: *** [src] Interrupt
In both cases (Emacs 23.3 and 23.4) Makefile:149 referes to the same part of a makefile in Emacs\lisp folder:
149 autoloads: $(LOADDEFS) doit
150 , chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
151 $(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
152 $(lisp)/dired.el $(lisp)/ibuffer.el
153 wd=$(lisp); $(setwins_almost); \
154 echo Directories: $$wins; \
155 $(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
in version 23.3. the building gets stuck while generating autoloads for *.el files:
Generating autoloads for progmodes/cc-mode.el...
Generating autoloads for progmodes/cc-mode.el...done
Generating autoloads for progmodes/cc-styles.el...
Generating autoloads for progmodes/cc-styles.el...done
Generating autoloads for progmodes/cc-vars.el...
Generating autoloads for progmodes/cc-vars.el...done
Generating autoloads for international/ccl.el...
Makefile:149: recipe for target `autoloads' failed
make[2]: *** [autoloads] Interrupt
in verison 23.4 the building gets stuck while saving loaddefs:
make[2]: Entering directory `/cygdrive/c/emacs-23.4/lisp'
chmod +w /cygdrive/c/emacs-23.4/lisp/ps-print.el /cygdrive/c/emacs-23.4/lisp/emulation/tpu-edt.el \
/cygdrive/c/emacs-23.4/lisp/emacs-lisp/cl-loaddefs.el /cygdrive/c/emacs-23.4/lisp/mail/rmail.el \
/cygdrive/c/emacs-23.4/lisp/dired.el /cygdrive/c/emacs-23.4/lisp/ibuffer.el
wd=/cygdrive/c/emacs-23.4/lisp; subdirs=`(cd $wd; find . -type d -print)`; for file in $subdirs; do case $file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */obsolete | */term ) ;; *) wins="$wins $wd/$file" ;; esac; done ; \
echo Directories: $wins; \
EMACSLOADPATH=/cygdrive/c/emacs-23.4/lisp LC_ALL=C ../src/bootstrap-emacs.exe -batch --no-site-file --multibyte -l autoload --eval '(setq generated-autoload-file "/cygdrive/c/emacs-23.4/lisp/loaddefs.el")' -f batch-update-autoloads $wins
Directories: /cygdrive/c/emacs-23.4/lisp/. /cygdrive/c/emacs-23.4/lisp/./calc /cygdrive/c/emacs-23.4/lisp/./calendar /cygdrive/c/emacs-23.4/lisp/./cedet /cygdrive/c/emacs-23.4/lisp/./cedet/ede /cygdrive/c/emacs-23.4/lisp/./cedet/semantic /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/analyze /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/bovine /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/decorate/cygdrive/c/emacs-23.4/lisp/./cedet/semantic/symref /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/wisent /cygdrive/c/emacs-23.4/lisp/./cedet/srecode /cygdrive/c/emacs-23.4/lisp/./emacs-lisp /cygdrive/c/emacs-23.4/lisp/./emulation /cygdrive/c/emacs-23.4/lisp/./erc /cygdrive/c/emacs-23.4/lisp/./eshell /cygdrive/c/emacs-23.4/lisp/./gnus /cygdrive/c/emacs-23.4/lisp/./international /cygdrive/c/emacs-23.4/lisp/./language /cygdrive/c/emacs-23.4/lisp/./mail /cygdrive/c/emacs-23.4/lisp/./mh-e /cygdrive/c/emacs-23.4/lisp/./net /cygdrive/c/emacs-23.4/lisp/./nxml /cygdrive/c/emacs-23.4/lisp/./org /cygdrive/c/emacs-23.4/lisp/./play /cygdrive/c/emacs-23.4/lisp/./progmodes /cygdrive/c/emacs-23.4/lisp/./textmodes /cygdrive/c/emacs-23.4/lisp/./url
Saving file /cygdrive/c/emacs-23.4/lisp/loaddefs.el...
Makefile:149: recipe for target `autoloads' failed
make[2]: *** [autoloads] Interrupt
Does anyone have a clue how can I fix this bug? Wrong C compiler ? Change Makefile? Use 'make' with some parameter?
Thank you for any help or reference.
************PART2************
Ok, so here is the continuing according to your advices:
1#
make autoloads
is not possible as it is because this sub-part is in the sub-makefile so it will produce error:
$ make autoloads
chmod +w /cygdrive/c/emacs-23.4/lisp/ps-print.el /cygdrive/c/emacs-23.4/lisp/emulation/tpu-edt.el \
/cygdrive/c/emacs-23.4/lisp/emacs-lisp/cl-loaddefs.el /cygdrive/c/emacs-23.4/lisps/mail/rmail.el \
/cygdrive/c/emacs-23.4/lisp/dired.el /cygdrive/c/emacs-23.4/lisp/ibuffer.el
wd=/cygdrive/c/emacs-23.4/lisp; subdirs=`(cd $wd; find . -type d -print)`; for file in $subdirs; do case $file in */Old | */RCS | */CVS | */CVS/* | */.* | */.*/* | */=* | */obsolete | */term ) ;; *) wins="$wins $wd/$file" ;; esac; done; \
echo Directories: $wins; \
EMACSLOADPATH=/cygdrive/c/emacs-23.4/lisp LC_ALL=C ../src/emacs -batch --no-site-file --multibyte -l autoload --eval '(setq generated-autoload-file "/cygdrive/c/emacs-23.4/lisp/loaddefs.el")' -f batch-update-autoloads $wins
Directories: /cygdrive/c/emacs-23.4/lisp/. /cygdrive/c/emacs-23.4/lisp/./calc /cygdrive/c/emacs-23.4/lisp/./calendar /cygdrive/c/emacs-23.4/lisp/./cedet /cygdrive/c/emacs-23.4/lisp/./cedet/ede /cygdrive/c/emacs-23.4/lisp/./cedet/semantic /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/analyze /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/bovine /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/decorate /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/symref /cygdrive/c/emacs-23.4/lisp/./cedet/semantic/wisent /cygdrive/c/emacs-23.4/lisp/./cedet/srecode /cygdrive/c/emacs-23.4/lisp/./emacs-lisp /cygdrive/c/emacs-23.4/lisp/./emulation /cygdrive/c/emacs-23.4/lisp/./erc /cygdrive/c/emacs-23.4/lisp/./eshell /cygdrive/c/emacs-23.4/lisp/./gnus /cygdrive/c/emacs-23.4/lisp/./international /cygdrive/c/emacs-23.4/lisp/./language /cygdrive/c/emacs-23.4/lisp/./mail /cygdrive/c/emacs-23.4/lisp/./mh-e /cygdrive/c/emacs-23.4/lisp/./net /cygdrive/c/emacs-23.4/lisp/./nxml /cygdrive/c/emacs-23.4/lisp/./org /cygdrive/c/emacs-23.4/lisp/./play /cygdrive/c/emacs-23.4/lisp/./progmodes /cygdrive/c/emacs-23.4/lisp/./textmodes /cygdrive/c/emacs-23.4/lisp/./url
/bin/sh: line 2: ../src/emacs: No such file or directory
Makefile:149: recipe for target `autoloads' failed
make: *** [autoloads] Error 127
If I am doing something wrong, please correct me.
2#
removing $(LOADDEFS) doit in deed does not change the result
3#
To run just the first part
autoloads:
chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
$(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
$(lisp)/dired.el $(lisp)/ibuffer.el
resolves in no error within autoloads,
however after 20 sec it froze for a while and produces another error
(description of this problem is bellow)
4#
To run the second part only:
autoloads:
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
creshed with origin error
5#
to run autoloads as in 3# also with
wd=$(lisp);
autoloads without error, later same error as in 3#
6#
run autoloads with wd=$(lisp);$(setwins_almost);
autoloads without error, later same error as in 3#
7#
add also line
echo Directories: $$wins;
autoloads without error, later same error as in 3#
8#
add also line
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
the origin error, of course
DESCRIPTION of 2nd ERROR (part 3#):
make[2]: Entering directory `/cygdrive/c/emacs-23.4/lisp'
Compiling /cygdrive/c/emacs-23.4/src/../lisp/abbrev.el
>>Error occurred processing /cygdrive/c/emacs-23.4/src/../lisp/abbrev.el: Symbol's value as variabl e is void ((warning-series))
Makefile:1478: recipe for target `compile-onefile' failed
make[2]: *** [compile-onefile] Error 1
make[2]: Leaving directory `/cygdrive/c/emacs-23.4/lisp'
Makefile:195: recipe for target `/cygdrive/c/emacs-23.4/src/../lisp/abbrev.elc' failed
make[1]: *** [/cygdrive/c/emacs-23.4/src/../lisp/abbrev.elc] Error 2
make[1]: Leaving directory `/cygdrive/c/emacs-23.4/src'
Makefile:339: recipe for target `src' failed
make: *** [src] Error 2
before that a lot of *.el files are compiled
part of the Makefile in lisp/
# The src/Makefile.in has its own set of dependencies and when they decide
# that one Lisp file needs to be re-compiled, we had better recompile it as
# well, otherwise every subsequent make will again call us, until we finally
# end up deciding that yes, the file deserves recompilation.
# One option is to try and reproduce exactly the same dependencies here as
# we have in src/Makefile.in, but it turns out to be painful
# (e.g. src/Makefile.in may have a dependency for ../lisp/foo.elc where we
# only know of $(lisp)/foo.elc). So instead we provide a direct way for
# src/Makefile.in to rebuild a particular Lisp file, no questions asked.
# Use byte-compile-refresh-preloaded to try and work around some of
# the most common problems of not bootstrapping from a clean state.
1477 compile-onefile:
1478 #echo Compiling $(THEFILE)
1479 ## Use byte-compile-refresh-preloaded to try and work around some of
1480 ## the most common bootstrapping problems.
1481 #$(emacs) -l bytecomp -f byte-compile-refresh-preloaded $(BYTE_COMPILE_EXTRA_FLAGS) -f batch-byte-compile $(THEFILE)
There is a list of ELC files in Makefile:
## Explicitly list the .elc files, for the sake of parallel builds.
## http://lists.gnu.org/archive/html/bug-gnu-emacs/2008-05/msg00016.html
## This can probably be done more elegantly, but needs to be portable.
ELCFILES = \
$(lisp)/abbrev.elc \
$(lisp)/abbrevlist.elc \
$(lisp)/add-log.elc \
$(lisp)/align.elc \
$(lisp)/allout.elc \
$(lisp)/ansi-color.elc \
$(lisp)/apropos.elc \
$(lisp)/arc-mode.elc \
...
$(lisp)/info.elc \
$(lisp)/informat.elc \
$(lisp)/international/ccl.elc \
$(lisp)/international/characters.elc \
$(lisp)/international/fontset.elc \
$(lisp)/international/isearch-x.elc \
The Makefile somewhy recreates *.el files maybe from *.elc files, however all *.el files are already there. OK now I have two errors insted of one : )(if there are not connected of course)
Thank you again.
Generated makefiles are notoriously hard to maintain and troubleshoot, but we can try. The rule in question has two prerequisites and two commands, the second composed of four shell commands strung together:
autoloads: $(LOADDEFS) doit
chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
$(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
$(lisp)/dired.el $(lisp)/ibuffer.el
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
First I would try make autoloads. If that gives the same error, we can proceed, otherwise post the results.
Then remove the prerequisites ($(LOADDEFS) doit), since they should be idempotent and have no effect of the operation of this rule (unless the makefile is really convoluted) and try again.
Then split the command into smaller commands and try one by one. First
autoloads:
chmod +w $(lisp)/ps-print.el $(lisp)/emulation/tpu-edt.el \
$(lisp)/emacs-lisp/cl-loaddefs.el $(lisp)/mail/rmail.el \
$(lisp)/dired.el $(lisp)/ibuffer.el
This should give no error. If it does then probably one of those files is missing; post the results. If not then try the second command without the first:
autoloads:
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
I expect this will give the same error as originally; if not, just put the first command back in and proceed.
Now break down the second command. We can't omit the early parts, since the later parts depend on them, so first try
autoloads:
wd=$(lisp);
That should work, unless lisp is something weird (yeah, yeah, I know). Then
autoloads:
wd=$(lisp); $(setwins_almost);
I'll bet that's where it fails, but if not, continue:
autoloads:
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins;
That should work. Then
autoloads:
wd=$(lisp); $(setwins_almost); \
echo Directories: $$wins; \
$(emacs) -l autoload --eval '(setq generated-autoload-file "$(lisp)/loaddefs.el")' -f batch-update-autoloads $$wins
will almost certainly fail.
That's enough for a first pass. Tell us the results and we'll proceed.
I'd recommend you try with the Emacs-24 pretest instead, and if that fails, report it as a bug.