Re: shooting oneself in the foot with ldconfig -v
The previously configured directory list was fully populated, so effectively there should have been no change as the previously configured directories were untouched and I specified no additional pathnames. ... Are you saying that by specifying -v I no longer satisfied the no parameters are given clause and ended up in a default place in the logic? That wasn't actually what I was saying, but after checking the source code it turns out you are right and that is exactly what happens. ... IMHO a verbose switch shouldn't change behavior; it should just spam the console a lot. True. Current behavior sounds like, at best, a LOLA violation. Perhaps the OP would consider submitting a PR. ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
shooting oneself in the foot with ldconfig -v
Hey folks, I'm running 6.2-p8 and was trying to clean up my portsclean -L output today. It was reporting tons of duplicate libraries in /usr/X11R6 and /usr/local even though X11R6 is an alias to /usr/local. I tracked the problem to portclean's use of `ldconfig -elf -r` which was reporting directories and libraries in /usr/X11R6. I read the ldconfig manpage in an attempt to understand more and saw this line: -v Switch on verbose mode. I told myself, Self, the '-v' option may allow you to determine what's going on. It can't help knowing more! Alas, the -v option doesn't behave as advertised. Instead it clears the shared library cache (reference: http://www.parsed.org/tip/231/). An empty shared library cache means all dynamically-linked programs fail. This has the wonderful side-effect of preventing me from logging into the box to fix it (I logged off before I figured this out). Reboot and all will be well, you say? Yes, on boot /etc/rc.d/ldconfig is run and it builds the shared library cache. Unfortunately, the box is 1,000 miles away in my apartment. :( This brings me to the question: Is the -v option broken or is the documentation out of date? Thanks, -Jon ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: shooting oneself in the foot with ldconfig -v
On Wed, Oct 10, 2007 at 05:41:29PM -0400, Jonathan Noack wrote: Hey folks, I'm running 6.2-p8 and was trying to clean up my portsclean -L output today. It was reporting tons of duplicate libraries in /usr/X11R6 and /usr/local even though X11R6 is an alias to /usr/local. I tracked the problem to portclean's use of `ldconfig -elf -r` which was reporting directories and libraries in /usr/X11R6. I read the ldconfig manpage in an attempt to understand more and saw this line: -v Switch on verbose mode. I told myself, Self, the '-v' option may allow you to determine what's going on. It can't help knowing more! Alas, the -v option doesn't behave as advertised. Instead it clears the shared library cache (reference: http://www.parsed.org/tip/231/). An empty shared library cache means all dynamically-linked programs fail. This has the wonderful side-effect of preventing me from logging into the box to fix it (I logged off before I figured this out). Reboot and all will be well, you say? Yes, on boot /etc/rc.d/ldconfig is run and it builds the shared library cache. Unfortunately, the box is 1,000 miles away in my apartment. :( This brings me to the question: Is the -v option broken or is the documentation out of date? No, the '-v' option behaves as documented and is not broken. It is, however, intended to be used in conjunction with some other option. You see, running ldconfig(8) without any arguments at all will clear the shared library cache. (Actually it will replace the cache with the files found in the specified directories, but since none were specified...) Adding '-v' will not change what ldconfig does, except possibly letting it be a bit more verbose about what happens. ldconfig is behaving as designed and documented, so the bug, such as it is, is in the design of ldconfig that lets you screw up the machine by simply running ldconfig without any option. -- Insert your favourite quote here. Erik Trulsson [EMAIL PROTECTED] ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: shooting oneself in the foot with ldconfig -v
On Wed, October 10, 2007 18:34, Erik Trulsson wrote: On Wed, Oct 10, 2007 at 05:41:29PM -0400, Jonathan Noack wrote: Hey folks, I'm running 6.2-p8 and was trying to clean up my portsclean -L output today. It was reporting tons of duplicate libraries in /usr/X11R6 and /usr/local even though X11R6 is an alias to /usr/local. I tracked the problem to portclean's use of `ldconfig -elf -r` which was reporting directories and libraries in /usr/X11R6. I read the ldconfig manpage in an attempt to understand more and saw this line: -v Switch on verbose mode. I told myself, Self, the '-v' option may allow you to determine what's going on. It can't help knowing more! Alas, the -v option doesn't behave as advertised. Instead it clears the shared library cache (reference: http://www.parsed.org/tip/231/). An empty shared library cache means all dynamically-linked programs fail. This has the wonderful side-effect of preventing me from logging into the box to fix it (I logged off before I figured this out). Reboot and all will be well, you say? Yes, on boot /etc/rc.d/ldconfig is run and it builds the shared library cache. Unfortunately, the box is 1,000 miles away in my apartment. :( This brings me to the question: Is the -v option broken or is the documentation out of date? No, the '-v' option behaves as documented and is not broken. It is, however, intended to be used in conjunction with some other option. You see, running ldconfig(8) without any arguments at all will clear the shared library cache. (Actually it will replace the cache with the files found in the specified directories, but since none were specified...) Adding '-v' will not change what ldconfig does, except possibly letting it be a bit more verbose about what happens. Not according to ldconfig(8); running ldconfig without any arguments implies -R: -R Rescan the previously configured directories. This opens the previous hints file and fetches the directory list from the header. Any additional pathnames on the command line are also processed. This is the default action when no parameters are given. The previously configured directory list was fully populated, so effectively there should have been no change as the previously configured directories were untouched and I specified no additional pathnames. ldconfig is behaving as designed and documented, so the bug, such as it is, is in the design of ldconfig that lets you screw up the machine by simply running ldconfig without any option. Are you saying that by specifying -v I no longer satisfied the no parameters are given clause and ended up in a default place in the logic? I could see how an unconditional shared library cache clear coupled with no additional action (no matching actions to pursue) could get me the results I got. If so that behavior is really confusing. IMHO a verbose switch shouldn't change behavior; it should just spam the console a lot. -Jon ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: shooting oneself in the foot with ldconfig -v
On Thu, Oct 11, 2007 at 12:27:49AM -0400, Jonathan Noack wrote: On Wed, October 10, 2007 18:34, Erik Trulsson wrote: On Wed, Oct 10, 2007 at 05:41:29PM -0400, Jonathan Noack wrote: Hey folks, I'm running 6.2-p8 and was trying to clean up my portsclean -L output today. It was reporting tons of duplicate libraries in /usr/X11R6 and /usr/local even though X11R6 is an alias to /usr/local. I tracked the problem to portclean's use of `ldconfig -elf -r` which was reporting directories and libraries in /usr/X11R6. I read the ldconfig manpage in an attempt to understand more and saw this line: -v Switch on verbose mode. I told myself, Self, the '-v' option may allow you to determine what's going on. It can't help knowing more! Alas, the -v option doesn't behave as advertised. Instead it clears the shared library cache (reference: http://www.parsed.org/tip/231/). An empty shared library cache means all dynamically-linked programs fail. This has the wonderful side-effect of preventing me from logging into the box to fix it (I logged off before I figured this out). Reboot and all will be well, you say? Yes, on boot /etc/rc.d/ldconfig is run and it builds the shared library cache. Unfortunately, the box is 1,000 miles away in my apartment. :( This brings me to the question: Is the -v option broken or is the documentation out of date? No, the '-v' option behaves as documented and is not broken. It is, however, intended to be used in conjunction with some other option. You see, running ldconfig(8) without any arguments at all will clear the shared library cache. (Actually it will replace the cache with the files found in the specified directories, but since none were specified...) Adding '-v' will not change what ldconfig does, except possibly letting it be a bit more verbose about what happens. Not according to ldconfig(8); running ldconfig without any arguments implies -R: -R Rescan the previously configured directories. This opens the previous hints file and fetches the directory list from the header. Any additional pathnames on the command line are also processed. This is the default action when no parameters are given. Yes, you are right. The previously configured directory list was fully populated, so effectively there should have been no change as the previously configured directories were untouched and I specified no additional pathnames. ldconfig is behaving as designed and documented, so the bug, such as it is, is in the design of ldconfig that lets you screw up the machine by simply running ldconfig without any option. Are you saying that by specifying -v I no longer satisfied the no parameters are given clause and ended up in a default place in the logic? That wasn't actually what I was saying, but after checking the source code it turns out you are right and that is exactly what happens. I could see how an unconditional shared library cache clear coupled with no additional action (no matching actions to pursue) could get me the results I got. If so that behavior is really confusing. IMHO a verbose switch shouldn't change behavior; it should just spam the console a lot. True. -- Insert your favourite quote here. Erik Trulsson [EMAIL PROTECTED] ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]