Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

I really need advice on how to complete this unix assignment. My teacher rambles and uses jargon without saying what the words mean and I'm

I really need advice on how to complete this unix assignment. My teacher rambles and uses jargon without saying what the words mean and I'm completely lost. PLZ HELP Assignment 5 "Porting a Makefile" Due by 11:59pm on Monday, July 24

Porting a Makefile

Your assignment is to "port" a Makefile from an older Debian architecture to a newer one.

Start by putting the tar file Assign05-2017-Summer.tar (hint: wget is ideal for this kind of retrieval) on cop3353.org, and then untar it.

Try a make clean ; make ; ./hello with the initial Makefile. You should see several error messages of the ilk (i.e., similar but not necessarily the same exact error messages):

 

COP3353_test@cop3353:~/Assign05-2017-Summer$ make clean ; make ; ./hello rm hello.o hello.s rm: cannot remove 'hello.o': No such file or directory rm: cannot remove 'hello.s': No such file or directory Makefile:20: recipe for target 'clean' failed make: *** [clean] Error 1 gcc -S -DUSERNAME='"Sam Smith"' hello.c as -o hello.o hello.s ld -o hello -dynamic-linker /lib/ld-linux.so.2 /usr/lib/x86_64-linux-gnu/crti.o /usr/lib/x86_64-linux-gnu/crt1.o /usr/lib/x86_64-linux-gnu/crtn.o hello.o -lc bash: ./hello: No such file or directory

[ To repeat: please note that you should see errors, but not necessarily the ones in the example above. Your task is to fix what problems you find in porting this Makefile, and certainly not to replicate the above errors. Look at it this way: when we test your Makefile, we are looking for "correct output", not "correct errors". ]

These are three requirements for this port, all of which are changes to the Makefile, not to the hello.c file:

Correct the location for the dynamic linker on cop3353.org in order to fix the ld "No such file or directory" problem, and change the Makefile accordingly.

Change "Sam Smith" to your own name.

Modify the clean target so that the rm is done silently rather than verbosely, and does not return an error if a file does not exist.

Please verify your changes: when you do make clean && make && ./hello (note the double ampersands rather than the semicolons), you should see something like:

 

COP3353_test@cop3353:~/Assign05-2017-Summer$ make clean && make && ./hello gcc -S -DUSERNAME='"Randolph Langley"' hello.c as -o hello.o hello.s ld -o hello -dynamic-linker /lib/x86_64-linux-gnu/ld-2.19.so /usr/lib/x86_64-linux/crti.o /usr/lib/x86_64-linux/crt1.o /usr/lib/x86_64-linux/crtn.o hello.o -lc Hello, this is from 'Randolph Langley'

Two things to note from above: first, despite the fact that we did a make clean again, we don't see any output from rm as per requirement 3; second, your library paths in the link line will not be those of the above line (those work on a yet different Debian derivative.)

The grader will verify this by doing the above make clean && make && ./hello in your ~/Assign05-2017-Summer subdirectory on cop3353.org.

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

C++ Database Development

Authors: Al Stevens

1st Edition

1558283579, 978-1558283572

More Books

Students also viewed these Databases questions