[net.bugs.2bsd] Any one using symbolic links under 2.9?

prog@usceast.UUCP (08/21/84)

<ln -s bug feature>

Is it just us, or is anyone else having symbolic links fail to work under
2.9 bsd? ln is claiming to always find an invalid argument. If it isn't just
us, and anyone knows a fix, could you let us know?

		advance thanks
		Ted Nolan

PS : yes , we do have UCB_SYMLINK defined.
-- 
---------------------------------------------------------------------------
| Ken Sallenger ,Ted Nolan                                                |
| Department of Computer Science       (graduate systems' programmers)    |
| University of South Carolina      ..decvax!mcnc!ncsu!ncrcae!usceast!prog|
| Columbia, SC 29208                ..akgua!usceast!prog                  |
|                                                                         |
---------------------------------------------------------------------------

bmarsh@noscvax.UUCP (William C. Marsh) (08/23/84)

If UCB_NET is not defined, the two system calls symlink and readlink
do not get included.  To include these two functions, (without including
ALL the UCB_NET stuff), change line 270 of file /usr/src/sys/sys/sysent.c
from the following:

#ifdef UCB_NET

to

#if defined(UCB_NET) || defined(UCB_SYMLINKS)

This will include symlink and readlink into the local system call table.
(the network system calls will be defined as nosys by a previous ifdef)

Bill Marsh				bmarsh@nosc
Code 911
Naval Ocean Systems Center		...sdcrdef!sdcsvax!noscvax!bmarsh
271 Catalina Blvd.
San Diego, CA 92152

david@varian.UUCP (David Brown) (08/23/84)

I haven't tried symbolic links under 2.9 myself (I've only gotten
as far as building a stock 2.9 pack, but we're not using it yet), but the
following hints were given at the 2.9BSD BOF session at the Utah
USENIX conference in regards to symbolic links:

1) in sys/sysset.c, there are some #ifdef's for symbolic links that
are coupled with the ifdef's for UCBNET. If you are not using the net
stuff, you need to separate these out.

2) src/cmd/ln.c and ls.c should be recompiled.

3) In fsck, symbolic links are defined as SPECIAL; this is wrong - remove
it.

I hope these are of help.

	David Brown	 (415) 945-2199
	Varian Instruments 2700 Mitchell Dr.  Walnut Creek, Ca. 94598
	{zehntel,amd,fortune,resonex}!varian!david

-- 
	David Brown	 (415) 945-2199
	Varian Instruments 2700 Mitchell Dr.  Walnut Creek, Ca. 94598
	{zehntel,amd,fortune,resonex}!varian!david

crl@pur-phy.UUCP (Charles LaBrec) (08/24/84)

Yes, we have an 11/24 running 2.9 with UCB_SYMLINKS defined, and it
works, but a few comments:

1) ln must be recompiled (and check to see if whoami.h or localopts.h
	is included, so as to get the above define. (same for ls, rm, 
	to name a few)

2) fsck must be fixed--there is a #define for SPECIAL (I think, it's
	been a while and I don't currently have access to the source).
	It is a big conditional and LNK is one of them.  Well, this
	makes fsck think a symlink takes no blocks, so it misses the
	block allocated to the symlink.

3) Just remembered, ls does not initialize the structure member l_linkto
	(I think) to NULL from malloc, so sometimes an ls -l prints some
	garbage as the linked-to field of a non-symlink.

Charles LaBrec
UUCP:		pur-ee!Physics:crl, purdue!Physics:crl
INTERNET:	crl @ pur-phy.UUCP