SlackwareThis Forum is for the discussion of Slackware Linux.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
Hello,
I am building scalpel 2.0 on Slackware 14.2 and after successful ./configure the make fails with multiple errors:
Code:
./.libs/libscalpel.a(syncqueue.o): In function `syncqueue_init(char const*, unsigned long)':
/usr/local/docs/recov-ware/scalpel-2.0/src/syncqueue.cpp:84: undefined reference to `rpl_malloc'
/usr/local/docs/recov-ware/scalpel-2.0/src/syncqueue.cpp:86: undefined reference to `rpl_malloc'
/usr/local/docs/recov-ware/scalpel-2.0/src/syncqueue.cpp:88: undefined reference to `rpl_malloc'
./.libs/libscalpel.a(prioque.o): In function `nolock_add_to_queue(Queue*, void*, int)':
/usr/local/docs/recov-ware/scalpel-2.0/src/prioque.cpp:152: undefined reference to `rpl_malloc'
/usr/local/docs/recov-ware/scalpel-2.0/src/prioque.cpp:158: undefined reference to `rpl_malloc'
./.libs/libscalpel.a(prioque.o):/usr/local/docs/recov-ware/scalpel-2.0/src/prioque.cpp:482: more undefined references to `rpl_malloc' follow
I have not found much on rpl_malloc. I read that this could be caused by an automake tool or cross compiling problem. I am not cross compiling. In the configure.ac I commented out the test for AC_FUNC_MALLOC. This did not help. My error reads like a missing function definition to me rather than a makefile error.
Do I need to add a lib to my 14.2 install or ...?
Hello,
I am building scalpel 2.0 on Slackware 14.2 and after successful ./configure the make fails with multiple errors:
Code:
./.libs/libscalpel.a(syncqueue.o): In function `syncqueue_init(char const*, unsigned long)':
/usr/local/docs/recov-ware/scalpel-2.0/src/syncqueue.cpp:84: undefined reference to `rpl_malloc'
/usr/local/docs/recov-ware/scalpel-2.0/src/syncqueue.cpp:86: undefined reference to `rpl_malloc'
/usr/local/docs/recov-ware/scalpel-2.0/src/syncqueue.cpp:88: undefined reference to `rpl_malloc'
./.libs/libscalpel.a(prioque.o): In function `nolock_add_to_queue(Queue*, void*, int)':
/usr/local/docs/recov-ware/scalpel-2.0/src/prioque.cpp:152: undefined reference to `rpl_malloc'
/usr/local/docs/recov-ware/scalpel-2.0/src/prioque.cpp:158: undefined reference to `rpl_malloc'
./.libs/libscalpel.a(prioque.o):/usr/local/docs/recov-ware/scalpel-2.0/src/prioque.cpp:482: more undefined references to `rpl_malloc' follow
I have not found much on rpl_malloc. I read that this could be caused by an automake tool or cross compiling problem. I am not cross compiling. In the configure.ac I commented out the test for AC_FUNC_MALLOC. This did not help. My error reads like a missing function definition to me rather than a makefile error.
Do I need to add a lib to my 14.2 install or ...?
Happy Trails
A possible cause of this issue is when you have a library in a non standard directory.
In fact, I guess, that you have build tre with ./configure && make && make install, which leads libtre.* libraries to be installed in /usr/local/lib instead of /usr/lib{64} :
Code:
$ cd tre-0.8.0/
$ ./configure && make && make install
...
Libraries have been installed in:
/usr/local/lib
$ cd ../scalpel-git
$ ./bootstrap && ./configure && make
...
./.libs/libscalpel.a(dig.o):/home/seb/scalpel-git/scalpel/src/dig.cpp:2692: more undefined references to `rpl_malloc' follow
When tre is configured with --prefix=/usr and --libdir=/usr/lib64 (or /usr/lib on slackware 32-bit), scalpel build fine :
Code:
$ cd tre-0.8.0/
$ ./configure --prefix=/usr --libdir=/usr/lib64 && make && make install
...
Libraries have been installed in:
/usr/lib64
...
$ cd ../scalpel-git
$ make clean
$ ./bootstrap && ./configure && make
...
cc/x86_64-slackware-linux/5.3.0/../../../../lib64/libtre.so /usr/lib64/../lib64/libstdc++.so /usr/lib64/libtre.so -lpthread -lm -Wl,-rpath -Wl,/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../lib64 -Wl,-rpath -Wl,/usr/lib64/../lib64 -Wl,-rpath -Wl,/usr/lib64/gcc/x86_64-slackware-linux/5.3.0/../../../../lib64 -Wl,-rpath -Wl,/usr/lib64/../lib64
make[1]: Leaving directory '/home/seb/TEST/scalpel.git'
Anyway, the easiest way to fix your issue is to use the tre and scalpel slackbuilds from slackbuilds.org as 55020 has suggested that earlier.
--
SeB
Last edited by phenixia2003; 01-25-2017 at 08:44 AM.
Thank you both, the reason I didn't go to slackbuild is ignorance. I let slackware64-14.2-install-dvd.iso do a default install and did install tre using the defaults. I don't know Slackware very well; I'm helping a friend who uses Slackware recover some files. I had tried a search for scalpel and Slackware but missed slackbuild. Thanks for the details on the tre lib. I'll press on to slackbuild but also will study the config and make files I used to understand what went wrong.
A part of me wants to do this the hard way but I have not had time in the last 10 years to keep up with Linux. I am a Unix and Linux user from many decades ago as in when we had to write our own serial port drivers for printers and then rebuild the OS to install them.
Thank you for that help it is much appreciated.
When the build fails, the variable ac_cv_func_malloc_0_nonnull is set to no, and thus, the option -Dmalloc=rpl_malloc is added to the scalpel compiler options. This is what happens when tre is not in any of the standard system directories. Snippet of config.log in this case :
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.