g++ build on SUSE 12.1, cannot open included file

 
Thread Tools Search this Thread
Operating Systems Linux SuSE g++ build on SUSE 12.1, cannot open included file
# 1  
Old 12-13-2011
g++ build on SUSE 12.1, cannot open included file

Hello,

I have a project that I have compiled on a number of linux systems including CentOS, Ubuntu, and Windows Cygwin. I am trying to build the project under SUSE 12.1. The make file runs allot of the way through, but then throws an error that an included file can't be opened.

This is the include statement (in fortran),
Code:
C  Error codes that may be encountered when processing inputs.
       INCLUDE 'MOLERRORS.DAT'

The file exists and is in the same directory. It does not appear to be a permissions issues because the entire directory is set to 777. This exact code base compiles on a number of other linux platform through a multi boot setup, so I can't understand why there is an issue with this.

This is the compile line from the make,
Code:
# compile src gfortran objects with fortran preprocessor
$(BDIR)/%.o: $(SOURCELOC)/src_client_main/%.FOR
	$(FCOMP) $(FCFLAGS) $(VFLAGS) -c -o $@ $<

Before I got the error, allot of objects that complied successfully even though they had the same include, so I am more than a bit baffled. I'm not even sure where to start looking.

Any suggestions?

LMHmedchem

Last edited by LMHmedchem; 12-13-2011 at 11:41 PM..
# 2  
Old 12-14-2011
It is probably a compiler issue. But I do not know either. strace can be used for this kind of thing. Sometimes.

This will produce a list of all syscalls involving file I/O. And their return codes, look for -1 return codes and the name of the error like ENOENT EPERM.
Code:
strace -e trace file -f -ff -o outputfilefromtrace  make -f mymakefile.mk

For a large build this may not be feasible, but it appears you are just building one tool set.
The -ff option creates separate files for each child process, you can then grep for -1

The candidate syscall most likely to fail is stat - stat is used to traverse PATH variables or -I dirname kinds of compiler directives.
In your case the last file in
Code:
 ls -lstr outputfilefromtrace*

contains the culprit's fingerprints.
# 3  
Old 12-14-2011
Quote:
Originally Posted by jim mcnamara
It is probably a compiler issue. But I do not know either. strace can be used for this kind of thing. Sometimes.

This will produce a list of all syscalls involving file I/O. And their return codes, look for -1 return codes and the name of the error like ENOENT EPERM.
Code:
strace -e trace file -f -ff -o outputfilefromtrace  make -f mymakefile.mk

For a large build this may not be feasible, but it appears you are just building one tool set.
The -ff option creates separate files for each child process, you can then grep for -1

The candidate syscall most likely to fail is stat - stat is used to traverse PATH variables or -I dirname kinds of compiler directives.
In your case the last file in
Code:
 ls -lstr outputfilefromtrace*

contains the culprit's fingerprints.
This is an include inside of another included file, so I don't know if that is the problem, but I don't see how it could work some times and not others. I will look at the trace. I will also just manually add the included file, since the data is always there. I don't remember why this was a separate file in the first place.

LMHmedchem
# 4  
Old 12-14-2011
There were limits to the number of "sub" includes - used to be 12 for the c++ standard.
If I remember correctly. And I do recall that this limit is perpetuated thru the gcc family.
Whatever it is today...
This User Gave Thanks to jim mcnamara For This Post:
# 5  
Old 12-14-2011
Well I got it hacked, more or less. The problem was the the first include statement was in a file in a different sub directory than the included file. The included was done as,
Code:
      INCLUDE '../src_client_main/PARAM.DAT'

Within the included PARAM.DAT file, there was the regular include I listed above. I guess it looks like,
Code:
./src_models/MODELS.FOR (INCLUDE '../src_client_main/PARAM.DAT')
./src_client_main/PARAM.DAT, MOLERRORS.DAT

PARAM.DAT has the INCLUDE 'MOLERRORS.DAT' in it. When the pre-processer was working on MODELS.FOR, it was able to find PARAM.DAT when referenced with that kind of path, but it didn't look for MOLERRORS.DAT with the ../src_client_main/ path. I guess it just looked for ./MOLERRORS.DAT and didn't find it. This setup works under cygwin, ubuntu, and cent, so I am surprised there is a difference with suse. I think it's all the same gcc stuff, but I guess I should look into it. It runs quite a bit slower under suse, so maybe not.

I guess I need to investigate a better way to set up my src structure. I have files in a few different sub folders, but there are some dependencies that need to be included from several places. I'm not sure how to address that without doing something lame like having several copies of the included files. It seems like there was a way to list the dependencies in the make file and include them on the compile line instead of explicitly in the src file, but I'm not sure about that.

LMHmedchem
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Show file name included time information

Hi all, I have many files included time information, some of them included time range by 30 minutes; 2007-12-27T110000.txt 2007-12-27T120000.txt 2007-12-27T130000.txt 2007-12-27T150000.txt 2007-12-27T153000.txt 2007-12-28T000000.txt 2007-12-28T003000.txt I only want to echo that... (5 Replies)
Discussion started by: jeo_fb
5 Replies

2. SuSE

Personal SUSE build installation issues.

http://uploads.tapatalk-cdn.com/20160725/0174562490859032f68430fb0fa216cd.jpg I have created a personally made SUSE-based distro using susestudio.com and it will install just fine on my laptops (32-bit Acer Aspire One ZG5 and MacBook 4,1). However, when installing on an old Emachine desktop, I... (6 Replies)
Discussion started by: TheOuterLinux
6 Replies

3. Shell Programming and Scripting

Rm -rf file.txt~ included in the first step?

I need to shred and delete a file after a certain time. Therefore I use shred -z /path/to/file.txt | rm -rf /path/to/file.txtIt works well, but typing in that very directory ls -shiI still see the so called backup-copy lets say file.txt~ When running bleachbit it will disappear thoroughly.... (3 Replies)
Discussion started by: 1in10
3 Replies

4. UNIX for Dummies Questions & Answers

Adding SDK Build on Kernel Source Build

Hi, So I downloaded this kernel source and was able to build it successfully. But I want to add this SDK source code inside, can anyone help me how to do this? Note that the SDK source can be built by itself. I added the SDK in the main Makefile: init-y := init/ #added SDK... (0 Replies)
Discussion started by: h0ujun
0 Replies

5. IP Networking

Open Suse Router

Hello I am having some issues doing to routing I have 4 network cards and one is connected to a linksys router with everything turned off to give us a static ip to use for the gateway out to the internet. Hear is what we have We have eth2 with ip address of 192.168.1.2 / sub 255.255.255.0... (0 Replies)
Discussion started by: psutliff-una
0 Replies

6. UNIX for Advanced & Expert Users

PATH included in .o file of device driver

Hello friends, I am building one driver related to wifi. When I am looking its hex dump, I can see that it is including a path to one particular file of kernel headers. It is as under. 6C 75 65 2E 0A 00 00 00 25 64 2E 25 64 2E 25 64 lue.....%d.%d.%d 2D 25 73 00 00 00 00 00 42 45... (4 Replies)
Discussion started by: linuxdevnoob
4 Replies

7. Red Hat

cannot set user id: Resource temporarily unavailable (not open file/open process related)

First post, sorry to be a bother but this one has been dogging me. I have a process user (java application server) that trips a resource limit every couple weeks and need help finding what limit we're hitting. First, this is what's running: This is the error when jobs are run or the... (0 Replies)
Discussion started by: Katahdin
0 Replies

8. SuSE

open SUSE 11.0 and its printer configuration

Does anybody who uses open SUSE 11.0? I have used open SUSE 10.2 for about 18 months. Today I installed open SUSE 11.0 The printer does not work. I tried all the tricks tweak it. My printer is an old one. It is HP Deskjet 5600 series. It works fine. I did the configuration using... (0 Replies)
Discussion started by: Angelo
0 Replies

9. Programming

Open Suse 10 seg fault

Okay, so here is some code that when compiled on Fedora Core 6 works great, but when I compile and run it on OpenSuse 10 it gives back a seg fault when trying to join the 2nd thead. #include <pthread.h> #include <stdio.h> int print_message_function( void *ptr ); int x = 1; main() { ... (1 Reply)
Discussion started by: chrisdrobison
1 Replies
Login or Register to Ask a Question