[comp.unix.aix] AIX v3.1: alloca and .<symbol>

J.Crowcroft@cs.ucl.ac.uk (Jon Crowcroft) (02/15/91)

we're getting a number undefined symbols linking various programs

e.g.
1. .rusers (librpcsvc.a)
2. .alloca  (libc.a)
3. .flock (libbsd.a?)

can someone please:
a) explain the . instead of _  prefix
b) explain the manual page for alloca reference to mystirous cc/xlc
option to get the alloca symbol recogized * linked properly?
c) the missing-ness of rusers

jon 

mbrown@testsys.austin.ibm.com (Mark Brown) (02/16/91)

J.Crowcroft@cs.ucl.ac.uk (Jon Crowcroft) writes:
| e.g.
| 1. .rusers (librpcsvc.a)
| 2. .alloca  (libc.a)
| 3. .flock (libbsd.a?)
| 
| can someone please:
| a) explain the . instead of _  prefix
| b) explain the manual page for alloca reference to mystirous cc/xlc
| option to get the alloca symbol recogized * linked properly?
| c) the missing-ness of rusers

Can't explain rusers, sorry.

alloca is a compiler built-in, look up the compiler man pages to turn on the
flag that enables it. The alloca manpage explains why this was done.

flock() in in libbsd.a. Compile with -D_BSD, and link in this library.


Mark Brown    IBM PSP Austin, TX.     (512) 823-3741   VNET: MBROWN@AUSVMQ
MAIL: mbrown@testsys.austin.ibm.com OR uunet!testsys.austin.ibm.com!mbrown
  The nice thing about standards is that there are so many to choose from!
      DISCLAIMER: Any personal opinions stated here are just that.

marc@ibmpa.awdpa.ibm.com (Marc Pawliger) (02/16/91)

In article <1441@ucl-cs.uucp>, J.Crowcroft@cs.ucl.ac.uk (Jon Crowcroft) writes:
|> 
|> we're getting a number undefined symbols linking various programs
|> 
|> e.g.
|> 1. .rusers (librpcsvc.a)
|> 2. .alloca  (libc.a)
|> 3. .flock (libbsd.a?)
|> 
|> can someone please:
|> a) explain the . instead of _  prefix
|> b) explain the manual page for alloca reference to mystirous cc/xlc
|> option to get the alloca symbol recogized * linked properly?
|> c) the missing-ness of rusers

I don't know about '.' vs '_' or why rusers is undefined.

About alloca:  to use alloca, you should add '#pragma alloca' to the top of
any source file that uses alloca. 

Flock should be in libc.a, at least it is according the the Info document on
the 'flock subroutine'.

+--Marc Pawliger----IBM Advanced Workstations Division----Palo Alto, CA---+
|   Internet: marc@ibminet.awdpa.ibm.com        VNET:    MARCP at AUSVM6  |
|    UUCP:     uunet!ibminet.awdpa.ibm.com!marc  Phone:   (415) 855-3493  |
+-----IBMinet:  marc@ibmpa.awdpa.ibm.com----------IBM T/L:  465-3493------+

fn@fractal.math.yale.edu (Francois Normant) (02/16/91)

Can't explain rusers, but for alloca the magic option is a
#pragma alloca
in the file containing the alloca()

For compatibility between BSD and AIX, take a look at /usr/lpp/bos/bsdport.
-- 
Francois Normant - fn@math.yale.edu
Yale University - Mathematics Department
Box 2155 - Yale Station
New Haven CT 06520