Web lists-archives.com

Re: make failing in custom code




Tapas Mishra wrote:
Hi,
I am trying to do a project  when I do a make on project code
in cygwin environment I get following error

gcc -Wall -g -c main.c -o main.o
main.c: In function ‘main’:
main.c:50:8: warning: unused variable ‘physmem’ [-Wunused-variable]
  char *physmem = page_table_get_physmem(pt);
        ^~~~~~~
gcc -Wall -g -c page_table.c -o page_table.o
page_table.c: In function ‘page_table_set_entry’:
page_table.c:125:2: warning: implicit declaration of function
‘remap_file_pages’ [-Wimplicit-function-declaration]
  remap_file_pages(pt->virtmem+page*PAGE_SIZE,PAGE_SIZE,0,frame,0);
  ^~~~~~~~~~~~~~~~
gcc -Wall -g -c disk.c -o disk.o
gcc -Wall -g -c program.c -o program.o
gcc main.o page_table.o disk.o program.o -o virtmem
page_table.o: In function `page_table_set_entry':
/home/DEEL/cs602/try1/page_table.c:125: undefined reference to
`remap_file_pages'
/home/DEEL/cs602/try1/page_table.c:125:(.text+0x491): relocation
truncated to fit: R_X86_64_PC32 against undefined symbol
`remap_file_pages'
collect2: error: ld returned 1 exit status
make: *** [makefile:2: virtmem] Error 1

I compiled the same code on a linux instance hosted on amazon cloud
and it compiled successfully. So this brought me to a conclusion some
files are missing in cygwin and hence I reached here.

I glanced at your pastebin files briefly. These warnings and errors appear to be garden variety coding issues. Nothing Cygwin-specific that I can see.

The first warning is that you've defined physmem but aren't using that definition anywhere in the same function. The second warning tells that you haven't defined remap_file_pages() at any point before it's used in that source file. It needs to be defined before use in that file, or in a header file #included before use. And the error message is messily saying remap_file_pages() wasn't defined in any of the object files you're linking.

Dunno how this could work as-is anywhere :-).  Minor tweaks should fix it.

..mark


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple