Flylib.com

Books Software

 
 
 

Section B.2. AIX and Linux Linker Options Comparison Table


B.2. AIX and Linux Linker Options Comparison Table

Table B-2 only lists the most commonly used linker options.

Table B-2. AIX and Linux Linker Switches Comparison Table

AIX

Linux

Description

-bexpall

-E
--export-dynamic

When creating a dynamically linked executable, adds all symbols to the dynamic symbol table.

-bmaxdata:< size >

-Gvalue
--gpsize=value

Sets the maximum size of objects to be optimized using the GP register to size. This is only meaningful for object file formats such as MIPS ECOFF, which supports putting large and small objects into different sections. This is ignored for other object file formats.

-eLabel

-e entry
--entry=entry

Uses entry as the explicit symbol for beginning execution of your program, rather than the default entry point.

-bdynamic or bshared

-Bdynamic
-dy
-call_shared

or
-Wl
brt
-shared

Links against dynamic libraries. The different variants of this option are for compatibility with various s ystems. You may use this option multiple times on the command line. It affects library searching for -l options that follow it.

-bM:SRE or brtl or G

-shared
-Bshareable

Creates a shared library that is reentrant (runtime linkable).

-l

-larchive

Adds the archive file libarchive.a to the list of files to link. This option may be used any number of times. This option also searches for shared objects (.so ) for other platforms; however, when running on a Linux platform, only archives are searched.

-Z

-Y

Specifies a search path for library names .

-L

-rpath path

Specifies the library search direction for the runtime linker.

-L

-L

Searches the specified directory for library files specified by the -l option.




B.3. I/O Services APIs: AIX to Linux Cross-Reference

Table B-3. AIX and Linux System API Comparison: I/O Services

AIX

Linux

ERRNO(s) in AIX Not Implemented in Linux

Description

access
accessx
faccessx

access

ESTALE
ETIMEDOUT

Checks user 's permissions for a file.

fclear
fclear64

None

 

Clears space in a file.

fseek

fseek

EAGIN

Repositions a stream.

ftell

ftell

EFBIG

 

rewind

rewind

EINTR

 

fgetpos

fgetpos

EIO

 

fsetpos

fsetpos

ENOSPC

 

fputc

fputc

EPIPE

Outputs character and strings.

fputs

fputs

ENOMEM

 

putc

putc

EOVERFLOW

 

putchar

putchar

ESPIPE

 

puts

puts

   

scanf

scanf

EAGIN

Inputs format conversion.

fscanf

fscanf

EBADF

 

sscanf

sscanf

EINTR

 
   

EIO

 
   

EINVAL

 
   

EILSEQ

 
   

ENOMEM

 

fsync

fsync

EINVAL
EINTR

Synchronizes a file's complete in- core state with that on disk.

getutent
setutent
enutent
utmptname
getutid
getutid_r
getutline_r
pututline_r
setutent_r
endutent_r
utmpname_r

getutent
getutent_r
getutid
getutid_r
gututline
gututline_r
putuline
setutent
endutent
utmpname

 

Provides access user accounting database entries. Entries in the database are described by the definitions and data structures in <utmp.h> .

lseek
lseek64
llseek

lseek
llseek
lseek64

EOVERFLOW

Moves the read-write pointer to an open file.

lockfx
lockf
flock

lockf
flock
fcntl

 

Controls open files' descriptors.

open
openx
creat

open
creat

EAGAIN
EDQUOT
EFBIG
EINTR
EIO
ENOSR
EOVERFLOW
ESTALE

Returns a file descriptor and creates files.

pathconf
fpathconf

pathconf
fpathconf

ESTALE
ETIMEDOUT

Retrieves file implementation characteristics.

read
readx
readv
readvx

read
readv
,

EBADMSG
EDEADLK
EOVERFLOW
ENXIO
ESPIPE
ETIMEDOUT

Reads from a file descriptor.

rename

rename

EDQUOT
ETIMEDOUT
ETXTBSY
ESTALE

Changes the name or location of a file.

statx
stat
fstatx
fstat
fullstat
fullstat

stat
fstat
lstat

ESTALE
ETIMEDOUT
EIO

Gets file status.

truncate
ftruncate
truncate64
ftruncate64

truncate
ftrunncate
truncate64
ftruncate64

EAGAIN
EDQUOT
EFBIG
EFBIG
EINTR
EMFILE
ENOSPC
ESTALE
ETIMEDOUT

Truncates a file to a specified length.

umask

umask

 

Sets file creation mask.

utimes
utime

utimes
utime

EPERM
EACCES
EROFS

Changes access and/or modification times of an inode .

write
writex
writev
writevx

write
writev
,

EDQUOT
ENXIO
EFBIG
ERANGE
ESPIPE

Writes to a file descriptor.

chdir

chdir

ESTALE
ETIMEDOUT

Changes working directory.

chroot

chroot

ESTALE
ETIMEDOUT

Changes root directory.

getwd
getcwd

get_current_
dir_name
getwd
getcwd

ENOMEM

Gets current working directory.

glob
globfree

glob
globfree

 

Finds path names matching a pattern, frees memory from glob() .

link

link

EDQUOT
ENOSPC
ESTALE

Makes a new name for a file.

mkdir

mkdir

EDQUOT
ETIMEOUT
ESTALE

Creates a directory.

readdir
readdir_r

readdir
_syscall3

 

Returns current location in directory stream.

printf

printf

EAGAIN

Formats output conversion.

fprintf

fprintf

EABDF

 

sprintf

sprintf

EFBIG

 

snprintf

snprintf

EINTR

 

vprintf

vprintf

EIO

 

vfprintf

vfprintf

ENOSPC

 

vsprintf

vsprintf

EPIPE

 

vsnprintf

vsnprintf

ELSEQ

 
   

EINVAL

 
   

ENOMEM

 
   

ENXIO

 

rmdir

rmdir

EEXIST

Removes a directory.

   

EINVAL

 
   

ETIMEDOUT

 
   

ESTALE

 

scandir
alphasort
,

scandir
alphasor
versionsort

 

Scans a directory for matching entries.

readlink

readlink

ERANGE
ETIMEDOUT

Reads value of a symbolic link.

remove

remove

EBUSY
ETIMEDOUT
ESTALE
EEXIST
EINVAL

Deletes a name and possibly the file it refers to.

symlink

symlink

EDQUOT
ETIMEDOUT
ESTALE

Makes a new name for a a file.

unlink

unlink

EBUSY
ETIMEDOUT
ESTALE

Deletes a name an possibly the file it refers to.

fscntl

None

 

Manipulates filesystem control operations.

getfsent_r
getfsspec_r
getfsfile_r
getfstype_r
setfsent_r
endfsent_r

getfsent
getfsspec
getfsfile
setfsent
endfsent

 

Gets information about a filesystem.

In AIX, _r denotes REENTRANT , which means functions are threadsafe. In Linux, you must make your modules that are using the equivalent APIs thread safe.

getvfsent

None

 

Gets a (virtual file system) VFS file entry.

getvfsbytype

     

getvfsbyname

     

getvfsbyflag

     

setvfsent

     

endvfsent

     

mnctl

None

 

Returns mount status information.

quotacl

quotacl

ELOOP

Manipulates disk quotas.

   

ENAMETOOLONG

 
   

ENOENT

 
   

EOPNOTSUPP

 
   

EROFS

 
   

EUSERS

 

statfs

statfs

ESTALE

Gets filesystem statistics.

fstatfs

fstatfs

ETIMEDOUT

 
   

EIO

 

sysconf

sysconf

 

Provides a way for the application to determine values for system limits or options at runtime. Functions are compatible, but the information they return are specific to the platform they are running on.

sync

sync

 

Functions are not compatible. In Linux, sync returns an int ; in AIX, this function returns void. Causes all information in memory that should be on disk to be written out. The information returned and its format differ .

umask

umask

 

Sets the umask to mask and 0777 .

vmount
uvmount

None

 

AIX-specific. Creates what is known as a virtual file system (VFS). uvmount removes a VFS. umount can also be used as an alternative to uvmount .

umount

umount

In AIX, ENOBLK is returned. In Linux, ENOTBLK is returned.

Unmounts a previously mounted filesystem, directory, or file.