I'm running into issues installing the Carmen Robotics toolkit in Fedora;
Making:
When I type make, I get the following error message
---- Copying global/carmen-std.ini to carmen.ini
***********
E X P O R T
***********
---- Copying ipc.h to [path]/carmen-0.7.4-beta/include/carmen
... many similar lines
---- Copying param_interface.h to [path]/carmen-0.7.4-beta/include/carmen
Makefile:7: *** missing separator. Stop.
make: *** [export] Error 255
I've googled around and saw that this can be caused by spaces instead of tabs at the beginnings of lines. There is no such issue anywhere near line 7 of the makefile.
Doing make -d gives a lot of output, which ends with:
Updating goal targets.... Considering target file `export'.
File `export' does not exist.
Finished prerequisites of target file `export'.
Must remake target `export'.
Invoking recipe from ../Makefile.rules:285 to update target `export'.
Putting child 0x174b8e0 (export) PID 5816 on the chain.
Live child 0x174b8e0 (export) PID 5816
Reaping winning child 0x174b8e0 PID 5816
Live child 0x174b8e0 (export) PID 5819
Reaping winning child 0x174b8e0 PID 5819
Removing child 0x174b8e0 PID 5819 from chain.
Successfully remade target file `export'.
GNU Make 3.82 Built for x86_64-redhat-linux-gnu Copyright (C) 2010
Free Software Foundation, Inc. License GPLv3+:
GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Reading makefiles...
Reading makefile `Makefile'...
Reading makefile `../Makefile.conf' (search path) (no ~ expansion)...
Reading makefile `../Makefile.vars' (search path) (no ~ expansion)...
Makefile:7: *** missing separator. Stop.
Reaping losing child 0xda4940 PID 5794
make: *** [export] Error 255
Removing child 0xda4940 PID 5794 from chain.
I've heard that getting to Carmen to compile can be a terrible experience, but I didn't expect that it would give me this much trouble, especially since I'd done it successfully on another computer in the past.
I can't even make clean
Does anyone have sage wisdom to offer on this topic?
I downgraded from Make 3.82 to 3.81 and this issue went away.
Related
I downloaded PrimeOS' kernel from https://github.com/primebook/android_kernel_common. I just need to replace a single .c file in /drivers/platform/x86. Here's what I tried doing:-
Replaced .c
make clean && make mrproper
Copied arch//configs/android-x86_deconfig to linux source root folder as .config
fakeroot make kernel -j4
The command runs but stops abruptly and the terminal shows the $ localhost as if the task is finished. Can you tell me where I went wrong.
Update
Here's the place where the issue comes:-
HOSTCC scripts/basic/fixdep
HOSTCC scripts/kconfig/conf.o
YACC scripts/kconfig/zconf.tab.c
LEX scripts/kconfig/zconf.lex.c
..............................................................
CC kernel/time/timeconv.o
In file included from ./arch/x86/include/asm/string.h:3,
from ./include/linux/string.h:20,
from ./arch/x86/include/asm/page_32.h:35,
from ./arch/x86/include/asm/page.h:14,
from ./arch/x86/include/asm/thread_info.h:12,
from ./include/linux/thread_info.h:38,
from ./arch/x86/include/asm/preempt.h:7,
from ./include/linux/preempt.h:81,
from ./include/linux/spinlock.h:51,
from ./include/linux/mmzone.h:8,
from ./include/linux/gfp.h:6,
from ./include/linux/mm.h:10,
from ./include/linux/ring_buffer.h:5,
from kernel/trace/trace.c:15:
In function ‘ftrace_dump’,
inlined from ‘ftrace_dump’ at kernel/trace/trace.c:8269:6:
./arch/x86/include/asm/string_32.h:325:29: warning: ‘__builtin_memset’ offset [8297, 8336] from the object at ‘iter’ is out of the bounds of referenced subobject ‘seq’ with type ‘struct trace_seq’ at offset 4176 [-Warray-bounds]
325 | #define memset(s, c, count) __builtin_memset(s, c, count)
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
kernel/trace/trace.c:8347:3: note: in expansion of macro ‘memset’
8347 | memset(&iter.seq, 0,
| ^~~~~~
CC kernel/time/timecounter.o
..............................................................
AR kernel/built-in.a
$
Full Log: https://pastebin.com/8T3G3Uyc
So, it just comes back to $ as if the process completed at kernel/built-in.a. This is the file where every time it stops. Even if I compile the kernel without any changes, it still stops at kernel/built-in.a
BTW, I am just using the source I downloaded from primebook and installed the necessary packages for recompiling the kernel. Should I be doing something else too.
UPDATE 1
I tried running make -j4 bzImage modules but this again stops at
AR drivers/video/built-in.a
AR drivers/built-in.a
Even this doesn't compile a bzImage
UPDATE 2
I tried running make kernel on a Linux source (5.4.0) and even that stops at built-in.a
UPDATE 3
I tried running make bzImage modules without -j4 and I get a new error now
sound/soc/codecs/es8316.c:766:1: note: in expansion of macro ‘module_i2c_driver’
766 | module_i2c_driver(es8316_i2c_driver);
| ^~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
make[3]: *** [scripts/Makefile.build:304: sound/soc/codecs/es8316.o] Error 1
make[2]: *** [scripts/Makefile.build:544: sound/soc/codecs] Error 2
make[1]: *** [scripts/Makefile.build:544: sound/soc] Error 2
make: *** [Makefile:1050: sound] Error 2
Full log: https://pastebin.com/JJeh4QTk
UPDATE 4
make bzImageworks and outputs the bzImage as expected.
Fix for kernel compilation stopping at make a built-in.a file
Use make bzImage or make bzImage modules instead of make kernel
Update - In my case the error was with the ES8316.c which was causing the compilation to stop. Go to your config file and delete the lines pertaining to ES8316 and the build went through successfully.
Fix for other Errors in the question
For the codec issue and for any other conflicting module, go to your config file and search for it, for eg:- i had issue with the module for ES8316. To fix it, remove the line corresponding to ES8316 in your config file or add a # infront of it. You may also try to debug the problem if you really need that driver.
Other things that you could try
I had gcc-9 installed and installing gcc-8 did help at times.
Trying to run make on Windows7 with mingw but got cryptic error. I can't figure out what line in Makefile or what command caused the error.
C:\pkgs\C-TCC-0.02>make --debug > tmp.txt
syntax error at -e line 1, at EOF
Execution of -e aborted due to compilation errors.
make: *** [blib\lib\C\\.exists] Error 255
The tmp.txt file
GNU Make 3.81
Copyright (C) 2006 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
This program built for i386-pc-mingw32
Reading makefiles...
Updating goal targets....
File `makemakerdflt' does not exist.
File `all' does not exist.
File `pure_all' does not exist.
File `config' does not exist.
File `blibdirs' does not exist.
File `blib\lib\C\\.exists' does not exist.
Must remake target `blib\lib\C\\.exists'.
Any ideas would be appreciated.
UPDATE1
Here is the Makefile
Figured it out. I should have used dmake instead of make.
Thanks to the tip from Perl Monks
I was compiling a source code, and it always fails at make command, below is the error message.
gcc: unrecognized option '-rdynamic'
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: \
warning: --export-dynamic is not supported for PE targets, \
did you mean --export-all-symbols?
/usr/lib/gcc/i686-pc-cygwin/4.5.3/../../../../i686-pc-cygwin/bin/ld: \
warning: --export-dynamic is not supported for PE targets, \
did you mean --export-all-symbols?
make[3]: Leaving directory `/home/alimjan/slim502/src'
make[2]: Leaving directory `/home/alimjan/slim502/src'
make[1]: Leaving directory `/home/alimjan/slim502/src'
Making all in lib
make[1]: Entering directory `/home/alimjan/slim502/lib'
Cannot execute /bin/lmntal
Makefile:422: recipe for target `config.il' failed
make[1]: *** [config.il] Error 1
make[1]: Leaving directory `/home/alimjan/slim502/lib'
Makefile:293: recipe for target `all-recursive' failed
make: *** [all-recursive] Error 1
(Above lines broken to display)
I could not solve this. I am new to make and don't know what to do?
Usually when a makefile output looks as severe as your output, then it is because of the environment of which it is being used on has changed -- it could perhaps be that some external files have been moved or deleted or it could be that the make is too big, especially if the make is recursive in nature ( stay away from recursive makefiles; go NR)
Anyway if I where you I would look into where the environment had changed -- perhaps if your project is in a version system - try a different branch
Trying to solve the problems in the makefile could be very difficult and so it is better to go back to a version that worked and then move on from there
I'm not really sure this is a problem with the makefile. The error is:
Cannot execute /bin/lmntal
I'm fairly sure if you tried to run "/bin/lmntal" yourself from the command line you'd get a similar error. It seems that your build requires some extra utility in order to run, that you don't have or which isn't working on your system. Does that file (/bin/lmntal) exist? Is it executable? Is it a script and if so, does the first line refer to an interpreter that exists and is executable? Is it a 32bit program (use file /bin/lmntal) while you're using a 64bit operating system and if so, do you have the 32bit versions of libc, etc. installed on your Ubuntu system? Or vice versa (if you have a 32bit Ubuntu and the utility is a 64bit program you won't be able to run it at all)?
Alternatively it could be that this program is supposed to be found somewhere else or named something else, and your makefile is at fault because some variables are not set; for example the makefile could say something like $(FOODIR)/bin/lmntal and for some reason the variable $(FOODIR) is not set.
If you provide the details above (file exists? Permissions? file output? Complete rule at line 422 of the makefile?) we can provide more help.
I'm using make to build a large project on OSX Lion. The scripts worked fine on OSX up to Snow Leopard, but now it fails.
What happens is that after building certain modules, I get an error similar to the following:
touch my.app/Contents/Resources
touch my.app
make[2]: write error
make[1]: *** [all] Error 1
make: *** [all] Error 1
If I then type make again it resumes from where it fails and builds successfully (until it hits another such error). It always happens for the same two modules of the project, and I can't for the life of me work out why.
Please let me know if there's any more information I can provide that would be helpful.
1st Update
Here's the output of make -d:
...
Finished prerequisites of target file `DesktopConn.o'.
Prerequisite `DesktopConn.cxx' is older than target `DesktopConn.o'.
No need to remake target `DesktopConn.o'.
Considering target file `List.o'.
Looking for an implicit rule for `List.o'.
Trying pattern rule with stem `List'.
Trying implicit prerequisite `/bin/sh: line 1: 6733 Segmentation fault: 11 make all
Reaping losing child 0x102d0ae70 PID 6471
make[1]: *** [all] Error 1
Removing child 0x102d0ae70 PID 6471 from chain.
Reaping losing child 0x10560ee20 PID 6342
make: *** [all] Error 1
Removing child 0x10560ee20 PID 6342 from chain.
I've put the whole make -d output (extremely verbose) on pastebin.
2nd Update
I've uploaded the Makefile too.
3rd Update
I've downloaded the source for make, built from source on my machine. It still fails at the same point. I've also tried using the make binary from Snow Leopard.
Try taking the SEGV at face value. make is either dereferencing an out-of-bounds pointer, or trying to write memory somewhere out of bounds, or it is trying to extend the stack beyond the process stack size limit. There's nothing you can do about the first two without debugging GNU make, but you can increase the stack limit. Using bash:
ulimit -s hard
raises the soft limit to the hard limit, giving you as much stack space as possible. Try it and see if make can run to completion without crashing.
llvm is the default compiler in Lion, I believe, but was not in previous versions you mentioned. Occam's razor says try it using:
CC=gcc make
Edit:
Found this, which I think is related. See answer #1, 3 edits: here. It refers to building Ruby, but I think the underlying issue is the same. It's possible you'll need to download a different version of GCC if this is the issue.
I download the GPL Ghsotscript9.00 from sourceforge.net, and try to bulid source as framework in mac, the steps as the help document about make, such as: copy macosx.mak to the top-level directory, rename it to makefile and issue 'make framework' from Terminal.app. then the procedure ends with this:
./base/gsicc_create.c: At top level:
./base/gsicc_create.c:242: warning: ‘gsicc_diagmatrix_init’ defined but not used
./base/gsicc_create.c:294: warning: ‘cie_is_lab’ defined but not used
./base/gsicc_create.c:542: warning: ‘swapbytes32’ defined but not used
./base/gsicc_create.c:692: warning: ‘add_desc_tag’ defined but not used
./base/gsicc_create.c:714: warning: ‘add_text_tag’ defined but not used
./base/gsicc_create.c:1382: warning: ‘add_tabledata’ defined but not used
make[1]: *** No rule to make target `obj/../soobj/lcms.dev', needed by `obj/../soobj/sicclib.dev'. Stop.
make: *** [so] Error 2
I don't know why the official file can't work? Maybe there are some operations I need to do before making, but how?
Thanks.
Please try the latest 9.04 from http://www.ghostscript.com/download (this is the top level page, actual
source download from http://downloads.ghostscript.com/public/ghostscript-9.04.tar.gz )
If you continue to have problems, please post the issue at http://bugs.ghostscript.com
We have several Artifex staff developers that work on macosx that build regularly, but they may not build the
shared obj lib regularly.