Install older version of gnu-make in Ubuntu 18.04

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP


.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty margin-bottom:0;







up vote
0
down vote

favorite












I want to install make 3.81 on Ubuntu 18.04.



So I download this version of make and run ./configure and then make. But when compiling it gives me this error:



./glob/glob.c: In function ‘glob’:
./glob/glob.c:581:23: warning: implicit declaration of function ‘__alloca’; did you mean ‘alloca’? [-Wimplicit-function-declaration]
newp = (char *) __alloca (dirlen + 1);
^~~~~~~~
alloca
./glob/glob.c:581:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (dirlen + 1);
^
./glob/glob.c:709:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (home_len + dirlen);
^
./glob/glob.c:732:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (end_name - dirname);
^
./glob/glob.c:783:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (home_len + rest_len + 1);
^
./glob/glob.c:814:11: warning: implicit declaration of function ‘__stat’; did you mean ‘__xstat’? [-Wimplicit-function-declaration]
: __stat (dirname, &st)) == 0
^~~~~~
__xstat
./glob/glob.c: In function ‘glob_in_dir’:
./glob/glob.c:1256:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1);
^
./glob/glob.c:1283:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
names = (struct globlink *) __alloca (sizeof (struct globlink));
^
./glob/glob.c:1341:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
struct globlink *new = (struct globlink *)
^
./glob/glob.c:1367:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
names = (struct globlink *) __alloca (sizeof (struct globlink));


Same situation at building version 3.82. My current version of make is 4.1.



Is anybody know what could be wrong?



Thanks



EDIT:




glob/libglob.a(glob.o): In function `glob_in_dir':
/opt/make-3.81/glob/glob.c:1361: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1336: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1277: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1250: undefined reference to `__alloca'
glob/libglob.a(glob.o): In function `glob':
/opt/make-3.81/glob/glob.c:575: undefined reference to `__alloca'
glob/libglob.a(glob.o):/opt/make-3.81/glob/glob.c:726: more undefined references to `__alloca' follow
collect2: error: ld returned 1 exit status
Makefile:410: recipe for target 'make' failed
make[2]: *** [make] Error 1
make[2]: Leaving directory '/opt/make-3.81'
Makefile:603: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/opt/make-3.81'
Makefile:326: recipe for target 'all' failed
make: *** [all] Error 2






share|improve this question

















  • 2




    They are warnings, not errors. Suggest you try it.
    – Doug Smythies
    2 days ago










  • I tried but make executable never gets generated.
    – Rastlyn
    2 days ago










  • + added errors to question.
    – Rastlyn
    2 days ago
















up vote
0
down vote

favorite












I want to install make 3.81 on Ubuntu 18.04.



So I download this version of make and run ./configure and then make. But when compiling it gives me this error:



./glob/glob.c: In function ‘glob’:
./glob/glob.c:581:23: warning: implicit declaration of function ‘__alloca’; did you mean ‘alloca’? [-Wimplicit-function-declaration]
newp = (char *) __alloca (dirlen + 1);
^~~~~~~~
alloca
./glob/glob.c:581:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (dirlen + 1);
^
./glob/glob.c:709:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (home_len + dirlen);
^
./glob/glob.c:732:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (end_name - dirname);
^
./glob/glob.c:783:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (home_len + rest_len + 1);
^
./glob/glob.c:814:11: warning: implicit declaration of function ‘__stat’; did you mean ‘__xstat’? [-Wimplicit-function-declaration]
: __stat (dirname, &st)) == 0
^~~~~~
__xstat
./glob/glob.c: In function ‘glob_in_dir’:
./glob/glob.c:1256:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1);
^
./glob/glob.c:1283:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
names = (struct globlink *) __alloca (sizeof (struct globlink));
^
./glob/glob.c:1341:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
struct globlink *new = (struct globlink *)
^
./glob/glob.c:1367:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
names = (struct globlink *) __alloca (sizeof (struct globlink));


Same situation at building version 3.82. My current version of make is 4.1.



Is anybody know what could be wrong?



Thanks



EDIT:




glob/libglob.a(glob.o): In function `glob_in_dir':
/opt/make-3.81/glob/glob.c:1361: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1336: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1277: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1250: undefined reference to `__alloca'
glob/libglob.a(glob.o): In function `glob':
/opt/make-3.81/glob/glob.c:575: undefined reference to `__alloca'
glob/libglob.a(glob.o):/opt/make-3.81/glob/glob.c:726: more undefined references to `__alloca' follow
collect2: error: ld returned 1 exit status
Makefile:410: recipe for target 'make' failed
make[2]: *** [make] Error 1
make[2]: Leaving directory '/opt/make-3.81'
Makefile:603: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/opt/make-3.81'
Makefile:326: recipe for target 'all' failed
make: *** [all] Error 2






share|improve this question

















  • 2




    They are warnings, not errors. Suggest you try it.
    – Doug Smythies
    2 days ago










  • I tried but make executable never gets generated.
    – Rastlyn
    2 days ago










  • + added errors to question.
    – Rastlyn
    2 days ago












up vote
0
down vote

favorite









up vote
0
down vote

favorite











I want to install make 3.81 on Ubuntu 18.04.



So I download this version of make and run ./configure and then make. But when compiling it gives me this error:



./glob/glob.c: In function ‘glob’:
./glob/glob.c:581:23: warning: implicit declaration of function ‘__alloca’; did you mean ‘alloca’? [-Wimplicit-function-declaration]
newp = (char *) __alloca (dirlen + 1);
^~~~~~~~
alloca
./glob/glob.c:581:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (dirlen + 1);
^
./glob/glob.c:709:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (home_len + dirlen);
^
./glob/glob.c:732:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (end_name - dirname);
^
./glob/glob.c:783:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (home_len + rest_len + 1);
^
./glob/glob.c:814:11: warning: implicit declaration of function ‘__stat’; did you mean ‘__xstat’? [-Wimplicit-function-declaration]
: __stat (dirname, &st)) == 0
^~~~~~
__xstat
./glob/glob.c: In function ‘glob_in_dir’:
./glob/glob.c:1256:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1);
^
./glob/glob.c:1283:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
names = (struct globlink *) __alloca (sizeof (struct globlink));
^
./glob/glob.c:1341:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
struct globlink *new = (struct globlink *)
^
./glob/glob.c:1367:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
names = (struct globlink *) __alloca (sizeof (struct globlink));


Same situation at building version 3.82. My current version of make is 4.1.



Is anybody know what could be wrong?



Thanks



EDIT:




glob/libglob.a(glob.o): In function `glob_in_dir':
/opt/make-3.81/glob/glob.c:1361: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1336: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1277: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1250: undefined reference to `__alloca'
glob/libglob.a(glob.o): In function `glob':
/opt/make-3.81/glob/glob.c:575: undefined reference to `__alloca'
glob/libglob.a(glob.o):/opt/make-3.81/glob/glob.c:726: more undefined references to `__alloca' follow
collect2: error: ld returned 1 exit status
Makefile:410: recipe for target 'make' failed
make[2]: *** [make] Error 1
make[2]: Leaving directory '/opt/make-3.81'
Makefile:603: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/opt/make-3.81'
Makefile:326: recipe for target 'all' failed
make: *** [all] Error 2






share|improve this question













I want to install make 3.81 on Ubuntu 18.04.



So I download this version of make and run ./configure and then make. But when compiling it gives me this error:



./glob/glob.c: In function ‘glob’:
./glob/glob.c:581:23: warning: implicit declaration of function ‘__alloca’; did you mean ‘alloca’? [-Wimplicit-function-declaration]
newp = (char *) __alloca (dirlen + 1);
^~~~~~~~
alloca
./glob/glob.c:581:14: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (dirlen + 1);
^
./glob/glob.c:709:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (home_len + dirlen);
^
./glob/glob.c:732:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (end_name - dirname);
^
./glob/glob.c:783:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
newp = (char *) __alloca (home_len + rest_len + 1);
^
./glob/glob.c:814:11: warning: implicit declaration of function ‘__stat’; did you mean ‘__xstat’? [-Wimplicit-function-declaration]
: __stat (dirname, &st)) == 0
^~~~~~
__xstat
./glob/glob.c: In function ‘glob_in_dir’:
./glob/glob.c:1256:21: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
char *fullname = (char *) __alloca (dirlen + 1 + patlen + 1);
^
./glob/glob.c:1283:12: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
names = (struct globlink *) __alloca (sizeof (struct globlink));
^
./glob/glob.c:1341:32: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
struct globlink *new = (struct globlink *)
^
./glob/glob.c:1367:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
names = (struct globlink *) __alloca (sizeof (struct globlink));


Same situation at building version 3.82. My current version of make is 4.1.



Is anybody know what could be wrong?



Thanks



EDIT:




glob/libglob.a(glob.o): In function `glob_in_dir':
/opt/make-3.81/glob/glob.c:1361: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1336: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1277: undefined reference to `__alloca'
/opt/make-3.81/glob/glob.c:1250: undefined reference to `__alloca'
glob/libglob.a(glob.o): In function `glob':
/opt/make-3.81/glob/glob.c:575: undefined reference to `__alloca'
glob/libglob.a(glob.o):/opt/make-3.81/glob/glob.c:726: more undefined references to `__alloca' follow
collect2: error: ld returned 1 exit status
Makefile:410: recipe for target 'make' failed
make[2]: *** [make] Error 1
make[2]: Leaving directory '/opt/make-3.81'
Makefile:603: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/opt/make-3.81'
Makefile:326: recipe for target 'all' failed
make: *** [all] Error 2








share|improve this question












share|improve this question




share|improve this question








edited 2 days ago
























asked 2 days ago









Rastlyn

32




32







  • 2




    They are warnings, not errors. Suggest you try it.
    – Doug Smythies
    2 days ago










  • I tried but make executable never gets generated.
    – Rastlyn
    2 days ago










  • + added errors to question.
    – Rastlyn
    2 days ago












  • 2




    They are warnings, not errors. Suggest you try it.
    – Doug Smythies
    2 days ago










  • I tried but make executable never gets generated.
    – Rastlyn
    2 days ago










  • + added errors to question.
    – Rastlyn
    2 days ago







2




2




They are warnings, not errors. Suggest you try it.
– Doug Smythies
2 days ago




They are warnings, not errors. Suggest you try it.
– Doug Smythies
2 days ago












I tried but make executable never gets generated.
– Rastlyn
2 days ago




I tried but make executable never gets generated.
– Rastlyn
2 days ago












+ added errors to question.
– Rastlyn
2 days ago




+ added errors to question.
– Rastlyn
2 days ago










1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










Each new version of gcc changes slightly according to the standard or better adherence to the standard. One thing I've noticed is that it becomes stricter and stricter. So, for example, you might have code from 5 years ago that would compile fine 5 years ago, but with the latest version of gcc, you may get all these warnings and errors.



It looks like make 3.81 was used in Ubuntu trusty: make 3.81 . It also looks like Ubuntu trusty was using gcc 4.8.2. So, one thing you can try is to install gcc 4.x and use that to compile.



In Ubuntu 18.04, install the package gcc-4.8 . Then type ./configure --help . You will see a list of environment variables that you can set that will change the compiler. This is also explained here.



I think this will work. (I've had to do something similar before.)






share|improve this answer





















  • Sounds logical, but even after I change compiler I get same errors.
    – Rastlyn
    2 days ago










  • I see. First of all, you should try make 3.82 and not 3.81 . If you just need 3.8x, then pick the latest in case there are little bugs. Also, if you search for that error you're getting, you'll find this long discussion. Basically, change line 211 of glob/glob.c and you're set. I was able to compile that with gcc 4.8 (but you can try the latest version too).
    – Ray
    2 days ago










  • After changing line 211 everything works perfectly. Thank you very much.
    – Rastlyn
    yesterday










Your Answer







StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "89"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);

else
createEditor();

);

function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
convertImagesToLinks: true,
noModals: false,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);



);








 

draft saved


draft discarded


















StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1062051%2finstall-older-version-of-gnu-make-in-ubuntu-18-04%23new-answer', 'question_page');

);

Post as a guest






























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
1
down vote



accepted










Each new version of gcc changes slightly according to the standard or better adherence to the standard. One thing I've noticed is that it becomes stricter and stricter. So, for example, you might have code from 5 years ago that would compile fine 5 years ago, but with the latest version of gcc, you may get all these warnings and errors.



It looks like make 3.81 was used in Ubuntu trusty: make 3.81 . It also looks like Ubuntu trusty was using gcc 4.8.2. So, one thing you can try is to install gcc 4.x and use that to compile.



In Ubuntu 18.04, install the package gcc-4.8 . Then type ./configure --help . You will see a list of environment variables that you can set that will change the compiler. This is also explained here.



I think this will work. (I've had to do something similar before.)






share|improve this answer





















  • Sounds logical, but even after I change compiler I get same errors.
    – Rastlyn
    2 days ago










  • I see. First of all, you should try make 3.82 and not 3.81 . If you just need 3.8x, then pick the latest in case there are little bugs. Also, if you search for that error you're getting, you'll find this long discussion. Basically, change line 211 of glob/glob.c and you're set. I was able to compile that with gcc 4.8 (but you can try the latest version too).
    – Ray
    2 days ago










  • After changing line 211 everything works perfectly. Thank you very much.
    – Rastlyn
    yesterday














up vote
1
down vote



accepted










Each new version of gcc changes slightly according to the standard or better adherence to the standard. One thing I've noticed is that it becomes stricter and stricter. So, for example, you might have code from 5 years ago that would compile fine 5 years ago, but with the latest version of gcc, you may get all these warnings and errors.



It looks like make 3.81 was used in Ubuntu trusty: make 3.81 . It also looks like Ubuntu trusty was using gcc 4.8.2. So, one thing you can try is to install gcc 4.x and use that to compile.



In Ubuntu 18.04, install the package gcc-4.8 . Then type ./configure --help . You will see a list of environment variables that you can set that will change the compiler. This is also explained here.



I think this will work. (I've had to do something similar before.)






share|improve this answer





















  • Sounds logical, but even after I change compiler I get same errors.
    – Rastlyn
    2 days ago










  • I see. First of all, you should try make 3.82 and not 3.81 . If you just need 3.8x, then pick the latest in case there are little bugs. Also, if you search for that error you're getting, you'll find this long discussion. Basically, change line 211 of glob/glob.c and you're set. I was able to compile that with gcc 4.8 (but you can try the latest version too).
    – Ray
    2 days ago










  • After changing line 211 everything works perfectly. Thank you very much.
    – Rastlyn
    yesterday












up vote
1
down vote



accepted







up vote
1
down vote



accepted






Each new version of gcc changes slightly according to the standard or better adherence to the standard. One thing I've noticed is that it becomes stricter and stricter. So, for example, you might have code from 5 years ago that would compile fine 5 years ago, but with the latest version of gcc, you may get all these warnings and errors.



It looks like make 3.81 was used in Ubuntu trusty: make 3.81 . It also looks like Ubuntu trusty was using gcc 4.8.2. So, one thing you can try is to install gcc 4.x and use that to compile.



In Ubuntu 18.04, install the package gcc-4.8 . Then type ./configure --help . You will see a list of environment variables that you can set that will change the compiler. This is also explained here.



I think this will work. (I've had to do something similar before.)






share|improve this answer













Each new version of gcc changes slightly according to the standard or better adherence to the standard. One thing I've noticed is that it becomes stricter and stricter. So, for example, you might have code from 5 years ago that would compile fine 5 years ago, but with the latest version of gcc, you may get all these warnings and errors.



It looks like make 3.81 was used in Ubuntu trusty: make 3.81 . It also looks like Ubuntu trusty was using gcc 4.8.2. So, one thing you can try is to install gcc 4.x and use that to compile.



In Ubuntu 18.04, install the package gcc-4.8 . Then type ./configure --help . You will see a list of environment variables that you can set that will change the compiler. This is also explained here.



I think this will work. (I've had to do something similar before.)







share|improve this answer













share|improve this answer



share|improve this answer











answered 2 days ago









Ray

701520




701520











  • Sounds logical, but even after I change compiler I get same errors.
    – Rastlyn
    2 days ago










  • I see. First of all, you should try make 3.82 and not 3.81 . If you just need 3.8x, then pick the latest in case there are little bugs. Also, if you search for that error you're getting, you'll find this long discussion. Basically, change line 211 of glob/glob.c and you're set. I was able to compile that with gcc 4.8 (but you can try the latest version too).
    – Ray
    2 days ago










  • After changing line 211 everything works perfectly. Thank you very much.
    – Rastlyn
    yesterday
















  • Sounds logical, but even after I change compiler I get same errors.
    – Rastlyn
    2 days ago










  • I see. First of all, you should try make 3.82 and not 3.81 . If you just need 3.8x, then pick the latest in case there are little bugs. Also, if you search for that error you're getting, you'll find this long discussion. Basically, change line 211 of glob/glob.c and you're set. I was able to compile that with gcc 4.8 (but you can try the latest version too).
    – Ray
    2 days ago










  • After changing line 211 everything works perfectly. Thank you very much.
    – Rastlyn
    yesterday















Sounds logical, but even after I change compiler I get same errors.
– Rastlyn
2 days ago




Sounds logical, but even after I change compiler I get same errors.
– Rastlyn
2 days ago












I see. First of all, you should try make 3.82 and not 3.81 . If you just need 3.8x, then pick the latest in case there are little bugs. Also, if you search for that error you're getting, you'll find this long discussion. Basically, change line 211 of glob/glob.c and you're set. I was able to compile that with gcc 4.8 (but you can try the latest version too).
– Ray
2 days ago




I see. First of all, you should try make 3.82 and not 3.81 . If you just need 3.8x, then pick the latest in case there are little bugs. Also, if you search for that error you're getting, you'll find this long discussion. Basically, change line 211 of glob/glob.c and you're set. I was able to compile that with gcc 4.8 (but you can try the latest version too).
– Ray
2 days ago












After changing line 211 everything works perfectly. Thank you very much.
– Rastlyn
yesterday




After changing line 211 everything works perfectly. Thank you very much.
– Rastlyn
yesterday












 

draft saved


draft discarded


























 


draft saved


draft discarded














StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2faskubuntu.com%2fquestions%2f1062051%2finstall-older-version-of-gnu-make-in-ubuntu-18-04%23new-answer', 'question_page');

);

Post as a guest













































































Popular posts from this blog

pylint3 and pip3 broken

Missing snmpget and snmpwalk

How to enroll fingerprints to Ubuntu 17.10 with VFS491