make failing in custom code

Mark Geisert mark@maxrnd.com
Thu Sep 27 16:49:00 GMT 2018


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



More information about the Cygwin mailing list