Solved

can't make GNU fileutils -- problem?

Posted on 1997-07-11
9
350 Views
Last Modified: 2013-12-16
I try to do a make after running ./configure for
GNU fileutils v3.13 on Solaris 2.5.1 ;
I get the following message:
make
make all-recursive
for subdir in lib intl src doc man po; do            \
  target=`echo all-recursive | sed s/-recursive//`; \
  echo making $target in $subdir;      \
  (cd $subdir && make $target)      \
   || case "" in *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$fail"
making all in lib
making all in intl
making all in src
/usr/local/bin/gcc -static -o chgrp chgrp.o ../lib/libfu.a -lintl -lgen
Undefined                  first referenced
 symbol                        in file
dlclose                             /usr/lib/libc.a(nss_deffinder.o)
dlsym                               /usr/lib/libc.a(nss_deffinder.o)
dlopen                              /usr/lib/libc.a(nss_deffinder.o)
ld: fatal: Symbol referencing errors. No output written to chgrp
*** Error code 1
make: Fatal error: Command failed for target `chgrp'
Current working directory /apps/fileutils-3.13/src
*** Error code 1
make: Fatal error: Command failed for target `all-recursive'
Current working directory /apps/fileutils-3.13
*** Error code 1
make: Fatal error: Command failed for target `all-recursive-hack'


What is the problem? I tried unsetting my LD_LIBRARY_PATH
but that didn't work...

0
Comment
Question by:chrisvo
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 5
  • 3
9 Comments
 

Expert Comment

by:vkg063097
ID: 1812511
Tell me the place from where I can get this fileutil utility, so that I can try configuring here.

vinay

0
 
LVL 1

Expert Comment

by:mgrcnk
ID: 1812512
I just garbbed it from prep.ai.mit.edu and compiled on Solaris2.5.1/Sparc just fine.  I have included my LD_LIBRARY_PATH environment variable.  If that fixes it, great.  If not, let me know and I will email you the compilation/configuration logs.  This will show you exactly what I did and will also have all of my environment variables.  I could post it, but that would be a HUGE post.

LD_LIBRARY_PATH=/usr/local/OpenGL/lib:/opt/SUNWspro/lib:/usr/local/galaxy2.0/galaxy/lib:/usr/openwin/lib:/usr/local/lib:/usr/ucblib:/opt/slate/versant/solaris/4.0.8/sun4/lib

Some of these will not pertain to you because they are locally installed packages (OpenGL, galaxy, etc.)


0
 
LVL 1

Expert Comment

by:mgrcnk
ID: 1812513
Also, if you still can't get it, I can tar up my source tree and email it (or let you ftp it from me).  At least you will be able to run the stuff (not sure how urgent you need it).
0
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

 

Author Comment

by:chrisvo
ID: 1812514
I'm trying to compile fileutils specifically to get a static version of ls... I ran configure, and then patched it; I tried setting my LD_LIBRARY_PATH to something similar to yours but I still get the same problems...
0
 
LVL 1

Expert Comment

by:mgrcnk
ID: 1812515
What do you mean by "you patched it"?  You did not mention that
in your question.  If you patched it with a file, please let me
know what file you used (where to get the patch).  If you meant
that you modified something (makefile, etc.), then what did you
modify?

0
 

Author Comment

by:chrisvo
ID: 1812516
Using Emil Isberg's static ls patch
(http://www.teleport.com/~minerva/wu-ftpd/static-ls.patch)
I was trying to create the ls for use with wu-ftpd
(anonymous ftp site...)
0
 
LVL 1

Expert Comment

by:mgrcnk
ID: 1812517
I just applied the patch:

mgrcnk] [deneb]/Users/manager/king1/TESTSRC/fileutils-3.13> make
make all-recursive
for subdir in lib intl src doc man po; do               \
  target=`echo all-recursive | sed s/-recursive//`; \
  echo making $target in $subdir;       \
  (cd $subdir && make $target)  \
   || case "" in *k*) fail=yes;; *) exit 1;; esac; \
done && test -z "$fail"
making all in lib
making all in intl
making all in src
gcc -c -DLOCALEDIR=\"/usr/local/lib/locale\" -DSHAREDIR=\"/usr/local/lib\" -DHAc
gcc -static -o ls ls.o ls-ls.o static-ls.o ../lib/libfu.a -lintl -lgen
making all in doc
making all in man
making all in po
-----

The patch worked fine for me.  Maybe post your environment variables as well as the output from ./configure and you patch application.  Also, if you would, email me a copy at mgrcnk@nextwork.rose-hulman.edu [so I don't have to cut and paste out of Netscape].  Thanks!



0
 
LVL 1

Accepted Solution

by:
mgrcnk earned 100 total points
ID: 1812518
I figured out why you were getting the errors.  The patch you applied is for ls only.  However, it modifies the makefile for all the binaries.  So, you were trying to statically compile everything (chgrp is where is died I believe).  To fix this:

1. Delete your source tree and start over (untar fileutils)
2. Run configure
3. Run make
4. Apply patch
5. Re-run make

If you follow this order, you should get better results.

chris
0
 

Author Comment

by:chrisvo
ID: 1812519
Thanks for the help, I got the compilation to succeed!
0

Featured Post

Optimize your web performance

What's in the eBook?
- Full list of reasons for poor performance
- Ultimate measures to speed things up
- Primary web monitoring types
- KPIs you should be monitoring in order to increase your ROI

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Let's say you need to move the data of a file system from one partition to another. This generally involves dismounting the file system, backing it up to tapes, and restoring it to a new partition. You may also copy the file system from one place to…
I have been running these systems for a few years now and I am just very happy with them.   I just wanted to share the manual that I have created for upgrades and other things.  Oooh yes! FreeBSD makes me happy (as a server), no maintenance and I al…
Learn how to find files with the shell using the find and locate commands. Use locate to find a needle in a haystack.: With locate, check if the file still exists.: Use find to get the actual location of the file.:
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.

630 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question