qmail Digest 26 May 1999 10:00:01 -0000 Issue 652
Topics (messages 25991 through 26023):
Signiatures
25991 by: "Paul Tomlin" <[EMAIL PROTECTED]>
qmailanalog stats question
25992 by: "Ralf Guenthner" <[EMAIL PROTECTED]>
Congrats to Dave Sill
25993 by: ivan <[EMAIL PROTECTED]>
rcpthost question
25994 by: Neil Aggarwal <[EMAIL PROTECTED]>
25995 by: "Soffen, Matthew" <[EMAIL PROTECTED]>
25997 by: Neil Aggarwal <[EMAIL PROTECTED]>
25998 by: "Soffen, Matthew" <[EMAIL PROTECTED]>
having trouble authenticating. Driving me insane. Please help!
25996 by: [EMAIL PROTECTED]
probs. compiling
25999 by: Jörgen Persson <[EMAIL PROTECTED]>
26001 by: Dave Sill <[EMAIL PROTECTED]>
26002 by: smurf <[EMAIL PROTECTED]>
26004 by: Joergen Persson <[EMAIL PROTECTED]>
26008 by: Faried Nawaz <[EMAIL PROTECTED]>
26010 by: Joergen Persson <[EMAIL PROTECTED]>
qmail and lotus notes
26000 by: [EMAIL PROTECTED]
26003 by: Markus Stumpf <[EMAIL PROTECTED]>
26005 by: Dave Sill <[EMAIL PROTECTED]>
estatistic
26006 by: Juliana Romano <[EMAIL PROTECTED]>
26007 by: Dave Sill <[EMAIL PROTECTED]>
smtp survey
26009 by: Peter van Dijk <[EMAIL PROTECTED]>
pop3 - no $HOME/Maildir
26011 by: Peter Gradwell <[EMAIL PROTECTED]>
26012 by: Peter Gradwell <[EMAIL PROTECTED]>
26013 by: Mahlon Smith <[EMAIL PROTECTED]>
26014 by: Markus Stumpf <[EMAIL PROTECTED]>
.. a few hours with qmail-pop3d
26015 by: Peter Gradwell <[EMAIL PROTECTED]>
26017 by: Markus Stumpf <[EMAIL PROTECTED]>
Envelope env variables
26016 by: Paul Farber <[EMAIL PROTECTED]>
26022 by: Harald Hanche-Olsen <[EMAIL PROTECTED]>
queued (delayed) mail
26018 by: "Andrew Gray" <[EMAIL PROTECTED]>
Sending to one host while rewriting the address' domain to anothe r
26019 by: "Robertson, William" <[EMAIL PROTECTED]>
Where do I subscribe to the ezmlm maillist ?
26020 by: Per Birkeby <[EMAIL PROTECTED]>
26021 by: Jason Brooke <[EMAIL PROTECTED]>
couldn't find host
26023 by: Wilson Fletcher <[EMAIL PROTECTED]>
Administrivia:
To subscribe to the digest, e-mail:
[EMAIL PROTECTED]
To unsubscribe from the digest, e-mail:
[EMAIL PROTECTED]
To bug my human owner, e-mail:
[EMAIL PROTECTED]
To post to the list, e-mail:
[EMAIL PROTECTED]
----------------------------------------------------------------------
Well,
I want the server to dynamically generate the signiature...
:)
Paul
>In fact, that's kind of covered in FAQ - just see the "How do I fix the
>messages from broken clients" part; if your client doesn't insert a
>signature, it is broken (well, kind of) :-)
Hi list
Does anyone disagree that -judging by the stats shown below- there's currently no
reason to worry about an overloaded qmail system? I think ddelay looks good and
average concurrency too, but then I have no comparison....
Total delivery attempts: 5998
success: 5649
failure: 56
deferral: 293
Total ddelay (s): 320083.112723
Average ddelay per success (s): 56.661907
Total xdelay (s): 92320.138456
Average xdelay per delivery attempt (s): 15.391820
Time span (days): 7.1641
Average concurrency: 0.149149
Regards
Ralf G.
That's right. :") Count me too. Keep the good work Dave.
I'm still waiting for -alias desc. etc ...
and checking it periodicaly, all others do this too .....
>Just wanted to make a mention to everyone on the list, that Dave Sill's
>recent work with 'life with qmail' is much appreciated and is a VERY
>informative collection of information. He should be commended. In the very
>short time that it has been up, it has been a very valuable source to
>point people to.
>
>Thank you very much Dave.
Hello:
I have a domain JAMMConsulting.com hosted with an ISP.
I have set-up a Redhat linux 5.3 system with qmail that
I am going to transfer the domain to.
So, when I set-up qmail, I put JAMMConsuling.com in the
rcpthosts file.
I tried to test it by sending an email to [EMAIL PROTECTED]
from that machine. I asumed that it would go to neil on that
machine, but it went to the account on the other ISP.
This is not what I expected. Will everything be OK
when I transfer the domain? Will I be able to receive
email to [EMAIL PROTECTED] on this new machine if I have
a login neil on it?
Thanks,
Neil.
--
**We pay a 5% finders fee for job referrals that lead to a contract*
--------------------------------------------------------------------
|Neil Aggarwal |JAMM Consulting, Inc. |Custom Programming |
|President & CEO |www.JAMMConsulting.com|Java, C, C++, perl,|
|[EMAIL PROTECTED]|(972) 612-6056 |HTML, CGI |
--------------------------------------------------------------------
begin:vcard
n:Aggarwal;Neil
tel;work:(972) 612-6056
x-mozilla-html:TRUE
url:http://www.JAMMConsulting.com
org:JAMM Consulting, Inc.
version:2.1
email;internet:[EMAIL PROTECTED]
title:President & CEO
adr;quoted-printable:;;7575 Frankford Rd #724=0D=0A;Dallas;Texas;75252;USA
note;quoted-printable:JAMM Consulting, Inc. is a full-service consulting and programming =0D=0Acompany dedicated to your projects in Java, C, C++, perl and HTML. =0D=0APlease contact us for more information.
fn:Neil Aggarwal
end:vcard
Did you also make sure that you had jammconsulting.com in the locals
file ? Otherwise it will accept mail for the domain, but it will
forward it to the other account.
> -----Original Message-----
> From: Neil Aggarwal [SMTP:[EMAIL PROTECTED]]
> Sent: Tuesday, May 25, 1999 11:19 AM
> To: qmail mailing list
> Subject: rcpthost question
>
> Hello:
>
> I have a domain JAMMConsulting.com hosted with an ISP.
>
> I have set-up a Redhat linux 5.3 system with qmail that
> I am going to transfer the domain to.
>
> So, when I set-up qmail, I put JAMMConsuling.com in the
> rcpthosts file.
>
> I tried to test it by sending an email to [EMAIL PROTECTED]
> from that machine. I asumed that it would go to neil on that
> machine, but it went to the account on the other ISP.
>
> This is not what I expected. Will everything be OK
> when I transfer the domain? Will I be able to receive
> email to [EMAIL PROTECTED] on this new machine if I have
> a login neil on it?
>
> Thanks,
> Neil.
>
>
> --
> **We pay a 5% finders fee for job referrals that lead to a contract*
> --------------------------------------------------------------------
> |Neil Aggarwal |JAMM Consulting, Inc. |Custom Programming |
> |President & CEO |www.JAMMConsulting.com|Java, C, C++, perl,|
> |[EMAIL PROTECTED]|(972) 612-6056 |HTML, CGI |
> --------------------------------------------------------------------
> << File: Card for Neil Aggarwal >>
> Did you also make sure that you had jammconsulting.com in the locals
> file ? Otherwise it will accept mail for the domain, but it will
> forward it to the other account.
That was my problem. Obviously, I am still now to this.
Another question: Do you know how to alias an email address?
Ie: If someone send email to [EMAIL PROTECTED],
I want it delivered to the neil account.
Moreover, is there a way to do this:
When a piece of mail comes to the machine, by any of its
names, do this:
1. Check if it is to login on that machine. If
so, deliver it.
2. If it is for a non-existant login, send to
a speciified account.
Thanks,
Neil.
**We pay a 5% finders fee for job referrals that lead to a contract*
--------------------------------------------------------------------
|Neil Aggarwal |JAMM Consulting, Inc. |Custom Programming |
|President & CEO |www.JAMMConsulting.com|Java, C, C++, perl,|
|[EMAIL PROTECTED]|(972) 612-6056 |HTML, CGI |
--------------------------------------------------------------------
begin:vcard
n:Aggarwal;Neil
tel;work:(972) 612-6056
x-mozilla-html:TRUE
url:http://www.JAMMConsulting.com
org:JAMM Consulting, Inc.
version:2.1
email;internet:[EMAIL PROTECTED]
title:President & CEO
adr;quoted-printable:;;7575 Frankford Rd #724=0D=0A;Dallas;Texas;75252;USA
note;quoted-printable:JAMM Consulting, Inc. is a full-service consulting and programming =0D=0Acompany dedicated to your projects in Java, C, C++, perl and HTML. =0D=0APlease contact us for more information.
fn:Neil Aggarwal
end:vcard
This is an FAQ question.
You create a ~alias/.qmail-webmaster file which contains one line
(&neil).
To handle all non-user addresses you create a ~alias/.qmail-default
which contains the address you wish to receive the bad/bogus mail.
> -----Original Message-----
> From: Neil Aggarwal [SMTP:[EMAIL PROTECTED]]
> Sent: Tuesday, May 25, 1999 11:32 AM
> To: Soffen, Matthew; qmail mailing list
> Subject: Re: rcpthost question
>
> > Did you also make sure that you had jammconsulting.com in the locals
> > file ? Otherwise it will accept mail for the domain, but it will
> > forward it to the other account.
>
> That was my problem. Obviously, I am still now to this.
>
> Another question: Do you know how to alias an email address?
> Ie: If someone send email to [EMAIL PROTECTED],
> I want it delivered to the neil account.
>
> Moreover, is there a way to do this:
> When a piece of mail comes to the machine, by any of its
> names, do this:
> 1. Check if it is to login on that machine. If
> so, deliver it.
> 2. If it is for a non-existant login, send to
> a speciified account.
>
> Thanks,
> Neil.
>
>
> **We pay a 5% finders fee for job referrals that lead to a contract*
> --------------------------------------------------------------------
> |Neil Aggarwal |JAMM Consulting, Inc. |Custom Programming |
> |President & CEO |www.JAMMConsulting.com|Java, C, C++, perl,|
> |[EMAIL PROTECTED]|(972) 612-6056 |HTML, CGI |
> --------------------------------------------------------------------
> << File: Card for Neil Aggarwal >>
This is the second machine now and I don't know what's causing the problem
and I need help.
Users, both virtual and real cannot authenticate through pop. I'm using
vmailmgr's checkvpw with pop3. Here's an strace from one of the pop
sessions:
[root@ert /root]# strace -p 23134
select(1, [0], NULL, NULL, {1165, 960000}) = 1 (in [0], left {1156,
90000})
read(0, "USER test\r\n", 128) = 14
select(2, NULL, [1], NULL, {1200, 0}) = 1 (out [1], left {1200, 0})
write(1, "+OK \r\n", 6) = 6
select(1, [0], NULL, NULL, {1200, 0}) = 1 (in [0], left {1195, 160000})
read(0, "PASS testing\r\n", 128) = 15
fcntl(1, F_GETFL) = 0x2 (flags O_RDWR)
close(2) = 0
fcntl(1, F_DUPFD, 2) = 2
close(3) = -1 EBADF (Bad file descriptor)
pipe([3, 4]) = 0
fork() = 23155
close(3) = 0
write(4, "test\testing\0<23134.927645"..., 53) = 53
close(4) = 0
--- SIGCHLD (Child exited) ---
wait4(23155, [WIFEXITED(s) && WEXITSTATUS(s) == 1], 0, NULL) = 23155
select(2, NULL, [1], NULL, {1200, 0}) = 1 (out [1], left {1200, 0})
write(1, "-ERR authorization failed\r\n", 27) = 27
_exit(1) = ?
The password is definitely set correctly. This is a system with shadow
using pam'd md5 hash as well. I cannot figure it out. There's other
machines with identical setups working fine.
Thanks.
Hi
I tried to compile Qmail-1.03 under Mac OS X and there was some
problems. Unfortunately I'm no cc-guru, maybe some of you are.
During "make setup check" I was told
[lot of output]
./compile auto-str.c
./load auto-str substdio.a error str.a
/usr/bin/ld: can't use -s with input files containing indirect symbols
(output file must contain at least global symbols, for maximum stripping
use -x)
make: *** [auto-str] Error 1
Any idea?
>From the manual for the GNU linker
-s Omits all symbol information from the output file.
-x Delete all local symbols
>From the manual for the Apple linker
-s Completely strip the output; that is, remove the symbol table and
relocation information.
-x Strips the non-global symbols; only saves external symbols.
I'm attatching the entire output from the "make" and the manual for the
Apple linker.
--
Jörgen Persson
Sysadmin, Teknologkåren vid LTH
( cat warn-auto.sh; \
echo CC=\'`head -1 conf-cc`\'; \
echo LD=\'`head -1 conf-ld`\' \
) > auto-ccld.sh
cat auto-ccld.sh make-load.sh > make-load
chmod 755 make-load
cat auto-ccld.sh find-systype.sh > find-systype
chmod 755 find-systype
./find-systype > systype
( cat warn-auto.sh; ./make-load "`cat systype`" ) > load
chmod 755 load
cat auto-ccld.sh make-compile.sh > make-compile
chmod 755 make-compile
( cat warn-auto.sh; ./make-compile "`cat systype`" ) > \
compile
chmod 755 compile
( ( ./compile tryvfork.c && ./load tryvfork ) >/dev/null \
2>&1 \
&& cat fork.h2 || cat fork.h1 ) > fork.h
rm -f tryvfork.o tryvfork
./compile qmail-local.c
./compile qmail.c
./compile quote.c
./compile now.c
./compile gfrom.c
./compile myctime.c
./compile slurpclose.c
cat auto-ccld.sh make-makelib.sh > make-makelib
chmod 755 make-makelib
( cat warn-auto.sh; ./make-makelib "`cat systype`" ) > \
makelib
chmod 755 makelib
./compile case_diffb.c
./compile case_diffs.c
./compile case_lowerb.c
./compile case_lowers.c
./compile case_starts.c
./makelib case.a case_diffb.o case_diffs.o case_lowerb.o \
case_lowers.o case_starts.o
./compile getln.c
./compile getln2.c
./makelib getln.a getln.o getln2.o
./compile subgetopt.c
./compile sgetopt.c
./makelib getopt.a subgetopt.o sgetopt.o
./compile sig_alarm.c
( ( ./compile trysgprm.c && ./load trysgprm ) >/dev/null \
2>&1 \
&& echo \#define HASSIGPROCMASK 1 || exit 0 ) > hassgprm.h
rm -f trysgprm.o trysgprm
./compile sig_block.c
( ( ./compile trysgact.c && ./load trysgact ) >/dev/null \
2>&1 \
&& echo \#define HASSIGACTION 1 || exit 0 ) > hassgact.h
rm -f trysgact.o trysgact
./compile sig_catch.c
./compile sig_pause.c
./compile sig_pipe.c
./compile sig_child.c
./compile sig_hup.c
./compile sig_term.c
./compile sig_bug.c
./compile sig_misc.c
./makelib sig.a sig_alarm.o sig_block.o sig_catch.o \
sig_pause.o sig_pipe.o sig_child.o sig_hup.o sig_term.o \
sig_bug.o sig_misc.o
./compile open_append.c
./compile open_excl.c
./compile open_read.c
./compile open_trunc.c
./compile open_write.c
./makelib open.a open_append.o open_excl.o open_read.o \
open_trunc.o open_write.o
./compile seek_cur.c
./compile seek_end.c
./compile seek_set.c
./compile seek_trunc.c
./makelib seek.a seek_cur.o seek_end.o seek_set.o \
seek_trunc.o
( ( ./compile tryflock.c && ./load tryflock ) >/dev/null \
2>&1 \
&& echo \#define HASFLOCK 1 || exit 0 ) > hasflock.h
rm -f tryflock.o tryflock
./compile lock_ex.c
./compile lock_exnb.c
./compile lock_un.c
./makelib lock.a lock_ex.o lock_exnb.o lock_un.o
./compile fd_copy.c
./compile fd_move.c
./makelib fd.a fd_copy.o fd_move.o
( ( ./compile trywaitp.c && ./load trywaitp ) >/dev/null \
2>&1 \
&& echo \#define HASWAITPID 1 || exit 0 ) > haswaitp.h
rm -f trywaitp.o trywaitp
./compile wait_pid.c
./compile wait_nohang.c
./makelib wait.a wait_pid.o wait_nohang.o
./compile env.c
./compile envread.c
./makelib env.a env.o envread.o
./compile stralloc_eady.c
./compile stralloc_pend.c
./compile stralloc_copy.c
./compile stralloc_opys.c
./compile stralloc_opyb.c
./compile stralloc_cat.c
./compile stralloc_cats.c
./compile stralloc_catb.c
./compile stralloc_arts.c
./makelib stralloc.a stralloc_eady.o stralloc_pend.o \
stralloc_copy.o stralloc_opys.o stralloc_opyb.o \
stralloc_cat.o stralloc_cats.o stralloc_catb.o \
stralloc_arts.o
./compile alloc.c
./compile alloc_re.c
./makelib alloc.a alloc.o alloc_re.o
./compile strerr_sys.c
./compile strerr_die.c
./makelib strerr.a strerr_sys.o strerr_die.o
./compile substdio.c
./compile substdi.c
./compile substdo.c
./compile subfderr.c
./compile subfdout.c
./compile subfdouts.c
./compile subfdin.c
./compile subfdins.c
./compile substdio_copy.c
./makelib substdio.a substdio.o substdi.o substdo.o \
subfderr.o subfdout.o subfdouts.o subfdin.o subfdins.o \
substdio_copy.o
./compile error.c
./compile error_str.c
./compile error_temp.c
./makelib error.a error.o error_str.o error_temp.o
./compile str_len.c
./compile str_diff.c
./compile str_diffn.c
./compile str_cpy.c
./compile str_chr.c
./compile str_rchr.c
./compile str_start.c
./compile byte_chr.c
./compile byte_rchr.c
./compile byte_diff.c
./compile byte_copy.c
./compile byte_cr.c
./compile byte_zero.c
./makelib str.a str_len.o str_diff.o str_diffn.o str_cpy.o \
str_chr.o str_rchr.o str_start.o byte_chr.o byte_rchr.o \
byte_diff.o byte_copy.o byte_cr.o byte_zero.o
./compile fmt_str.c
./compile fmt_strn.c
./compile fmt_uint.c
./compile fmt_uint0.c
./compile fmt_ulong.c
./compile scan_ulong.c
./compile scan_8long.c
./makelib fs.a fmt_str.o fmt_strn.o fmt_uint.o fmt_uint0.o \
fmt_ulong.o scan_ulong.o scan_8long.o
./compile datetime.c
./compile datetime_un.c
./makelib datetime.a datetime.o datetime_un.o
./compile auto-str.c
./load auto-str substdio.a error.a str.a
/usr/bin/ld: can't use -s with input files containg indirect symbols (output file must
contain at least global symbols, for maximum stripping use -x)
make: *** [auto-str] Error 1
LD(1) LD(1)
NNAAMMEE
ld - Mach object file link editor
SSYYNNOOPPSSIISS
lldd [ _o_p_t_i_o_n _._._. ] [ _f_i_l_e _._._. ]
DDEESSCCRRIIPPTTIIOONN
The _l_d command combines several Mach-O (Mach object) files
into one by combining like sections in like segments from
all the object files, resolving external references, and
searching libraries. In the simplest case several object
_f_i_l_e_s are given, and _l_d combines them, producing an object
file which can either be executed or become the input for
a further _l_d run. (In the latter case, the --rr option must
be given to preserve the relocation information.) Unless
an output file is specified, _l_d produces a file named
aa..oouutt. This file is made executable only if no errors
occurred during the link editing and there are no unde-
fined symbols.
FFAATT FFIILLEE SSUUPPPPOORRTT
The link editor accepts ``fat'' (multiple-architecture)
input files, but always creates a ``thin'' (single-archi-
tecture), standard Mach-O output file. The architecture
is specified using the --aarrcchh _a_r_c_h___t_y_p_e option.
If this
option is not used, _l_d(1) attempts to determine the output
architecture by examining the first object file encoun-
tered on the command line. If it is a ``thin'' file, its
architecture determines that of the output file. If the
first input file is a ``fat'' file, the ``best'' architec-
ture for the host is used. (See the explanation of the
--aarrcchh option, below.)
The compiler driver _c_c(1) handles creating fat executables
by calling _l_d(1) multiple times and using _l_i_p_o(1) to cre-
ate a ``fat'' file from the results of the _l_d(1) execu-
tions.
OOUUTTPPUUTT FFIILLEE LLAAYYOOUUTT
The object files are loaded in the order in which they are
specified on the command line. The segments and the sec-
tions in those segments will appear in the output file in
the order they are encountered in the object files being
linked. All zero fill sections will appear after all non-
zero fill sections in their segments.
Sections created from files with the --sseeccttccrreeaattee option
will appear in the output file last. Section names for
sections created from files are not allowed to overlap
with a section name in the same segment as a section com-
ing from an object file. Sections created from files may
be in a segment which has sections from object files and
if so will be loaded at the end of the non-zero fill sec-
tions for that segment.
Apple Computer, Inc. April 10, 1997 1
LD(1) LD(1)
If the option --sseegglliinnkkeeddiitt is specified, the segment
it
creates is the last segment in the output file.
The address of each segment can be specified with
--sseeggaaddddrr,, which takes the segment's name as an argument.
The address of the first segment can alternatively be
specified using --sseegg11aaddddrr,, in which case a segment name is
not used. Segments that do not have a specified address
will be assigned addresses in the order in which they
appear in the output file. A segment's address will be
assigned based on the ending address of the previous seg-
ment. If the address of the first segment has not been
specified by name, its assigned address will be the speci-
fied (via --sseegg11aaddddrr) or default first segment address. If
neither flag is used to specify the first segment's
address, its default address is zero for all formats
except the demand-paged executable format (MH_EXECUTE), in
which case the default first address is the value of the
segment alignment.
For demand-paged executable format (MH_EXECUTE) output
files, if none of the segments' addresses covers address
zero through the value of the segment alignment, a segment
with no access protection will be created to cover those
addresses. This segment, named ``__PAGEZERO'', is created
so that any attempt to dereference a NULL pointer will
cause a memory exception.
The entry point of the output file is the beginning of the
first section in the first segment (unless the --ee option
is specified).
SSTTAATTIICC AARRCCHHIIVVEE LLIIBBRRAARRIIEESS
_l_d supports two types of libraries: static archive
libraries and dynamic shared libraries. Searching for
undefined symbols is peformed differently for dynamic
shared libraries than it is for static archive libraries.
The searching of dynamic shared libraries is described
later.
When a static archive library is specified as an argument
to _l_d, it is searched exactly once, at the point it is
encountered in the argument list. Only those members
defining an unresolved external reference, as defined by
the static archive libary's table of contents, are loaded.
To produce the table of contents, all static archive
libraries must be processed by _r_a_n_l_i_b(1).
Generally, a static archive library does not have multiple
members that define the same symbol. For these types of
libraries, the order of the members is not important, so
the table of contents can be sorted for faster link edit-
ing using the --ss option to _r_a_n_l_i_b(1). The first member of
the static archive library is named ``__.SYMDEF SORTED'',
Apple Computer, Inc. April 10, 1997 2
LD(1) LD(1)
which is understood to be a sorted table of contents.
If the static archive library does have multiple members
that define the same symbol, the table of contents that
_r_a_n_l_i_b(1) produces can't be sorted. Instead, it follows
the order in which the members appear in the static
archive library. The link editor searches the table of
contents iteratively, loading members until no further
references are satisfied. In the unsorted case, the first
member of the static archive library is named
``__.SYMDEF'', which is understood to be a table of con-
tents in the order of the archive members.
Static archive library members can also be loaded in
response to the --OObbjjCC and --aallll__llooaadd flags. See
their
descriptions below.
DDYYNNAAMMIICC SSHHAARREEDD LLIIBBRRAARRIIEESS
When a dynamic shared library or an object file that was
linked against a dynamic shared library is specified as an
argument to _l_d, that library is placed in the dynamic
shared library search list. The order of the search list
is always the same order the libraries were encountered on
the command line. All dynamic libraries libraries that the
dynamic libraries are dependent upon are added to the end
of the search list.
Once the search list is constructed, the static link edi-
tor checks for undefined symbols by simulating the way the
dynamic linker will search for undefined symbols at run-
time. For each undefined symbol, the static link editor
searches each library in the search list until it finds a
module that defines the symbol. With each undefined sym-
bol, the search starts with the first library in the list.
This is different than for static archive libraries, where
each library is searched exactly once for all undefined
symbols.
The static link editor simulates dynamic linking as if all
the undefined symbols are to be bound at program launch
time. The dynamic linker actually binds undefined symbols
as they are encountered during execution instead of at
program launch. However, the static link editor always
produces the same linking as the dynamic linker as long as
none of the dynamic shared libraries define the same sym-
bol. Different linking can occur only when there is more
than one definition of a symbol and the library modules
that contain the definitions for that symbol do not define
and reference exactly the same symbols. In this case,
even different executions of the same program can produce
different linking because the dynamic linker binds unde-
fined functions as they are called, and this affects the
order in which undefined symbols are bound. Because it
Apple Computer, Inc. April 10, 1997 3
LD(1) LD(1)
can produce different dynamic linking, using dynamic
shared libraries that define the same symbols in the same
program is strongly discouraged.
If a static archive library appears after a dynamic shared
library on the command line, the static library is placed
in the dynamic library search list and is searched as a
dynamic library. In this way, when a dynamic library has
undefined symbols, it will cause the appropriate members
of the static libraries to be loaded into the output.
Searching static libraries as dynamic libraries can cause
problems if the dynamic library later changes to reference
symbols from the static library that it did not previously
reference. In this case when the program runs, the dynamic
linker will report these symbols as undefined because the
members for these symbols were not loaded into the output.
UUSSIINNGG TTHHEE DDYYNNAAMMIICC LLIINNKK EEDDIITTOORR
AANNDD DDYYNNAAMMIICC SSHHAARREEDD LLIIBBRRAARRIIEESS
The option --ddyynnaammiicc must be specified in order to use
dynamic shared libraries (and any of the features used to
implement them) and/or the dynamic link editor. To make
sure that the output is not using any features that would
require the dynamic link editor, the flag --ssttaattiicc can be
specified. Only one of these flags can be specified.
LLIINNKK EEDDIITTOORR DDEEFFIINNEEDD SSYYMMBBOOLLSS
There is a group of link editor defined symbols for the
MH_EXECUTE, MH_DYLIB and MH_PRELOAD file types (see the
header file <mach-o/ldsyms.h>). Link editor symbols are
reserved; it is an error if an input object file defines
such a symbol. Only those link editor symbols that are
referenced by the object file appear in the output file's
symbol table.
The link editor defined symbol `__mh_execute_header'
(`_mh_execute_header' in C) is reserved when the output
file format is MH_EXECUTE. This symbol is the address of
the Mach header in a Mach-O executable (a file of type
MH_EXECUTE). It does not appear in any other Mach-O file
type. It can be used to get to the addresses and sizes of
all the segments and sections in the executable. This can
be done by parsing the headers and load commands (see
_M_a_c_h_-_O(5)).
The link editor defined symbol `__mh_dylib_header'
(`_mh_dylib_header' in C) is reserved when the output file
format is MH_DYLIB. This symbol is the address of the
Mach header in a Mach-O dynamic shared library (a file of
type MH_DYLIB) and is a private external symbol. It does
not appear in any other Mach-O file type. It can be used
to get to the addresses and sizes of all the segments and
sections in a dynamic shared library. The addresses,
Apple Computer, Inc. April 10, 1997 4
LD(1) LD(1)
however, must have the value
___d_y_l_d___g_e_t___i_m_a_g_e___v_m_a_d_d_r___s_l_i_d_e(3)
added to them.
The MH_PRELOAD file type has link editor defined symbols
for the beginning and ending of each segment, and for the
beginning and ending of each section within a segment.
These names are provided for use in a Mach-O preloaded
file, since it does not have its headers loaded as part of
the first segment. The names of the symbols for a seg-
ment's beginning and end have the form: __SEGNAME__begin
and __SEGNAME__end, where __SEGNAME is the name of the
segment. Similarly, the symbols for a section have the
form: __SEGNAME__sectname__begin and
__SEGNAME__sectname__end, where __sectname is the name of
the section in the segment __SEGNAME. These symbols'
types are those of the section that the names refer to.
(A symbol that refers to the end of a section actually
has, as its value, the beginning address of the next sec-
tion, but the symbol's type is still that of the section
mentioned in the symbol's name.)
OOPPTTIIOONNSS
_L_d understands several options. Filenames and options
that refer to libraries (such as --ll and --ffrraammeewwoorrkk),
as
well as options that create symbols (such as --uu and --ii),
are position-dependent: They define the load order and
affect what gets loaded from libraries. Some _l_d options
overlap with compiler options. If the compiler driver
_c_c(1) is used to invoke _l_d _, it maybe necessary to pass
the _l_d(1) options to _c_c(1) using
--WWll,,--ooppttiioonn,,aarrgguu--
mmeenntt11,,aarrgguummeenntt22.
The most common option is:
--oo _n_a_m_e
The output file is named _n_a_m_e, instead of aa..oouutt.
The following flags are related to architectures:
--aarrcchh _a_r_c_h___t_y_p_e
Specifies the architecture, _a_r_c_h___t_y_p_e_, for the out-
put file. ``Fat'' input files that do not contain
this specified architecture are ignored. Only one
--aarrcchh _a_r_c_h___t_y_p_e can be specified. See
_a_r_c_h(3) for
the currently known _a_r_c_h___t_y_p_es. If
_a_r_c_h___t_y_p_e
specifies a certain implementation of an architec-
ture (such as --aarrcchh _m_6_8_0_4_0 or --aarrcchh
_i_4_8_6 ), the
resulting object file has that specific CPU sub-
type, and it is an error if any input file has a
CPU subtype that will not combine to the CPU sub-
type for _a_r_c_h___t_y_p_e.
Apple Computer, Inc. April 10, 1997 5
LD(1) LD(1)
The default output file architecture is determined
by the first object file to be linked. If it is a
``thin'' (standard Mach-O) file, or a ``fat'' file
that contains only one architecture, the output
file will have the same architecture. Otherwise,
if it is a ``fat'' file containing an architecture
that would execute on the host, then the ``best''
architecture is used, as defined by what the kernel
exec(2) would select. Otherwise, it is an error,
and a --aarrcchh _a_r_c_h___t_y_p_e must be specified.
--aarrcchh__mmuullttiippllee
This flag is used by the _c_c(1) driver program when
it is run with multiple --aarrcchh _a_r_c_h___t_y_p_e
flags. It
instructs programs like _l_d(1) to precede any dis-
played message with a line stating the program
name, in this case _l_d, and the architecture (from
the --aarrcchh _a_r_c_h___t_y_p_e flag). This helps
distinguish
which architecture the error messages refer to.
--ffoorrccee__ccppuussuubbttyyppee__AALLLL
The --ffoorrccee__ccppuussuubbttyyppee__AALLLL
flag causes the CPU sub-
type to remain the ALL CPU subtype and not to be
combined or changed. This flag has precedence over
any --aarrcchh _a_r_c_h___t_y_p_e flag for a specific
implementa-
tion.
The following flags are related to using the dynamic link
editor and/or dynamic shared libraries (and any of the
features used to implement them):
--ddyynnaammiicc
Allows use of the features associated with dynamic
link editor. The default is --ddyynnaammiicc..
--ssttaattiicc
Causes those features associated with dynamic link
editor to be treated as an error. (The description
for the options that will cause an error if you use
them in conjunction with --ssttaattiicc are marked with
the statement "when --ddyynnaammiicc
is used").
--rreeaadd__oonnllyy__rreellooccss _t_r_e_a_t_m_e_n_t
Specifies how relocation entries in read-only sec-
tions are to be treated when --ddyynnaammiicc is used. To
get the best possible sharing, the read-only sec-
tions should not have any relocation entries. If
they do, the dynamic linker will write on the sec-
tion. Having relocation entries appear in read-
only sections is normally avoided by compiling with
the option --ddyynnaammiicc.. But in such cases non-con-
verted assembly code or objects not compiled with
--ddyynnaammiicc relocation entries will appear in read-
Apple Computer, Inc. April 10, 1997 6
LD(1) LD(1)
only sections. The _t_r_e_a_t_m_e_n_t can be:
_e_r_r_o_r_, _w_a_r_n_-
_i_n_g_, or _s_u_p_p_r_e_s_s_. Which cause the
treatment of
relocation entries in read-only sections as either,
errors, warnings, or suppressed messages. The
default is to treat these as errors.
--pprreebbiinndd
Have the static linker, _l_d(1), prebind an exe-
cutable's or dynamic shared library's undefined
symbols to the addresses of the dynamic libraries
it is being linked with. This optimization can
only be done if the libraries don't overlap and no
symbols are overridden. When the resulting program
is run and the same libraries are used to run the
program as when the program was linked, the dynamic
linker can use the prebound addresses. If not, the
dynamic linker undoes the prebinding and binds nor-
mally.
The following flags are related to libraries:
--ll_x This option is an abbreviation for the library name
`lib_x.a', where _x is a string. If --ddyynnaammiicc is
specified the abbreviation for the library name is
first search as `lib_x.dylib' and then `lib_x.a' is
searched for. _l_d searches for libraries first in
any directories specified with --LL options, then in
the standard directories //lliibb, //uussrr//lliibb,
and
//uussrr//llooccaall//lliibb. A library is searched
when its
name is encountered, so the placement of the --ll
flag is significant. If string _x is of the form
_x.o, then that file is searched for in the same
places, but without prepending `lib' or appending
`.a' or `.dylib' to the filename.
--LL_d_i_r Add _d_i_r to the list of directories in which to
search for libraries. Directories specified with
--LL are searched before the standard directories.
--ZZ Do not search the standard directories when search-
ing for libraries.
--ffrraammeewwoorrkk _n_a_m_e_[_,_s_u_f_f_i_x_]
Specifies a framework to link against. Frameworks
are dynamic shared libraries, but they are stored
in different locations, and therefore must be
searched for differently. When this option is spec-
ified, _l_d searches for framework `_n_a_m_e.frame-
work/_n_a_m_e' first in any directories specified with
the --FF option, then in the standard framework
directories
//LLooccaall//LLiibbrraarryy//FFrraammeewwoorrkkss,
//NNeett--
wwoorrkk//LLiibbrraarryy//FFrraammeewwoorrkkss,
and //SSyysstteemm//LLiibbrraarryy//FFrraammee--
wwoorrkkss. The placement of the --ffrraammeewwoorrkk
option is
significant, as it determines when and how the
Apple Computer, Inc. April 10, 1997 7
LD(1) LD(1)
framework is searched. If the optional suffix is
specified the framework is first searched for the
name with the suffix and then without.
--FF_d_i_r Add _d_i_r to the list of directories in which to
search for frameworks. Directories specified with
--FF are searched before the standard framework
directories.
--OObbjjCC Loads all members of static archive libraries that
define an Objective C class or a category. This
option does not apply to dynamic shared libraries.
--aallll__llooaadd
Loads all members of static archive libraries.
This option does not apply to dynamic shared
libraries.
--ddyylliibb__ffiillee
_i_n_s_t_a_l_l___n_a_m_e_:_f_i_l_e___n_a_m_e
Specifies that a dynamic shared library is in a
different location than its standard location. Use
this option when you link with a library that is
dependent on a dynamic library, and the dynamic
library is in a location other than its default
location. _i_n_s_t_a_l_l___n_a_m_e specifies the path
where
the library normally resides. _f_i_l_e___n_a_m_e specifies
the path of the library you want to use instead.
For example, if you link to a library that depends
upon the dynamic library libsys and you have libsys
installed in a nondefault location, you would use
this option: --ddyylliibb__ffiillee
//lliibb//lliibb--
ssyyss__ss..AA..ddyylliibb:://mmee//lliibb//lliibbssyyss__ss..AA..ddyylliibb.
The following options specify the output file format (the
file type):
--eexxeeccuuttee
Produce a Mach-O demand-paged executable format
file. The headers are placed in the first segment,
and all segments are padded to the segment align-
ment. This has a file type of MH_EXECUTE. This is
the default. If no segment address is specified at
address zero, a segment with no protection (no
read, write, or execute permission) is created at
address zero. This segment, whose size is that of
the segment alignment, is named ``__PAGEZERO''.
This option was previously named --MMaacchh, which will
continue to be recognized.
--oobbjjeecctt
Produce a Mach-O file in the relocatable object
file format that is intended for execution. This
differs from using the --rr option in that it defines
Apple Computer, Inc. April 10, 1997 8
LD(1) LD(1)
common symbols, does not allow undefined symbols
and does not preserve relocation entries. This has
a file type of MH_OBJECT. In this format all sec-
tions are placed in one unnamed segment with all
protections (read, write, execute) allowed on that
segment. This is intended for extremely small pro-
grams that would otherwise be large due to segment
padding. In this format, and all non-MH_EXECUTE
formats, the link editor defined symbol ``__mh_exe-
cute_header'' is not defined since the headers are
not part of the segment. This format file can't be
use with the dynamic linker.
--pprreellooaadd
Produce a Mach-O preloaded executable format file.
The headers are not placed in any segment. All
sections are placed in their proper segments and
they are padded to the segment alignment. This has
a file type of MH_PRELOAD. This option was previ-
ously --pp, which will continue to be recognized.
--ddyylliibb Produce a Mach-O dynamicly linked shared library
format file. The headers are placed in the first
segment. All sections are placed in their proper
segments and they are padded to the segment align-
ment. This has a file type of MH_DYLIB. This
option is used by _l_i_b_t_o_o_l(1) when its
--ddyynnaammiicc
option is specified.
--bbuunnddllee
Produce a Mach-O bundle format file. The headers
are placed in the first segment. All sections are
placed in their proper segments and they are padded
to the segment alignment. This has a file type of
MH_BUNDLE.
--ddyylliinnkkeerr
Produces a Mach-O dynamic link editor format file.
The headers are placed in the first segment. All
sections are placed in their proper segments, and
they are padded to the segment alignment. This has
a file type of MH_DYLINKER.
--ffvvmmlliibb
Produce a Mach-O fixed VM shared library format
file. The headers are placed in the first segment
but the first section in that segment will be
placed on the next segment alignment boundary in
that segment. All sections are placed in their
proper segments and they are padded to the segment
alignment. This has a file type of MH_FVMLIB.
The following flags affect the contents of the output
Apple Computer, Inc. April 10, 1997 9
LD(1) LD(1)
file:
--rr Save the relocation information in the output file
so that it can be the subject of another _l_d run.
The resulting file type is a Mach-O relocatable
file (MH_OBJECT) if not otherwise specified. This
flag also prevents final definitions from being
given to common symbols, and suppresses the `unde-
fined symbol' diagnostics.
--dd Force definition of common storage even if the --rr
option is present. This option also forces link
editor defined symbols to be defined. This option
is assumed when there is a dynamic link editor load
command in the input and --rr is not specified.
The following flags support segment specifications:
--sseeggaalliiggnn _v_a_l_u_e
Specifies the segment alignment. _v_a_l_u_e is a hex-
adecimal number that must be an integral power of
2. The default is the target pagesize (2000 hex
currently).
--sseegg11aaddddrr _a_d_d_r
Specifies the starting address of the first segment
in the output file. _a_d_d_r is a hexadecimal number
and must be a multiple of the segment alignment.
This option can also be specified as --iimmaaggee__bbaassee..
--sseeggaaddddrr _n_a_m_e _a_d_d_r
Specifies the starting address of the segment named
_n_a_m_e to be _a_d_d_r_. The address must be a hexadecimal
number that is a multiple of the segment alignment.
--sseeggpprroott _n_a_m_e _m_a_x _i_n_i_t
Specifies the maximum and initial virtual memory
protection of the named segment, _n_a_m_e_, to be _m_a_x
and _i_n_i_t respectfully. The values for _m_a_x and _i_n_i_t
are any combination of the characters `r' (for
read), `w' (for write), `x' (for execute) and '-'
(no access). The default is `rwx' for the maximum
protection for all segments. The default for the
initial protection for all segments is `rw' unless
the segment contains a section which contains some
machine insructions, in which case the default for
the initial protection is `rwx'. The default for
the initial protection for the ``__TEXT'' segment
is `rx' (not writable).
--sseegglliinnkkeeddiitt
Create the link edit segment, named ``__LINKEDIT''
(this is the default). This segment contains all
Apple Computer, Inc. April 10, 1997 10
LD(1) LD(1)
the link edit information (relocation information,
symbol table, string table, etc.) in the object
file. If the segment protection for this segment
is not specified, the initial protection is not
writable. This can only be specified when the out-
put file type is not MH_OBJECT and MH_PRELOAD out-
put file types. To get at the contents of this
section, the Mach header and load commands must be
parsed from the link editor defined symbols like
`__mh_execute_header' (see _M_a_c_h_-_O(5)).
--nnoosseegglliinnkkeeddiitt
Do not create the link edit segment (see
--sseegglliinnkkeeddiitt above).
--ppaaggeezzeerroo__ssiizzee _v_a_l_u_e
Specifies the segment size of __PAGEZERO to be of
size _v_a_l_u_e, where _v_a_l_u_e is a hexadecimal number
rounded to the segment alignment. The default is
the target pagesize (currently, 2000 hexadecimal).
--ssttaacckk__aaddddrr _v_a_l_u_e
Specifies the initial address of the stack pointer
_v_a_l_u_e, where _v_a_l_u_e is a hexadecimal number rounded
to the segment alignment. The default segment
alignment is the target pagesize (currently, 2000
hexadecimal). If --ssttaacckk__ssiizzee is specified and
--ssttaacckk__aaddddrr is not, a default stack address spe-
cific for the architecture being linked will be
used and its value printed as a warning message.
This creates a segment named __UNIXSTACK. Note
that the initial stack address will be either at
the high address of the segment or the low address
of the segment depending on which direction the
stack grows for the architecture being linked.
--ssttaacckk__ssiizzee _v_a_l_u_e
Specifies the size of the stack segment _v_a_l_u_e,
where _v_a_l_u_e is a hexadecimal number rounded to the
segment alignment. The default segment alignment
is the target pagesize (currently, 2000 hexadeci-
mal). If --ssttaacckk__aaddddrr is specified and
--ssttaacckk__ssiizzee
is not, a default stack size specific for the
architecture being linked will be used and its
value printed as a warning message. This creates a
segment named __UNIXSTACK .
The following flags support section specifications:
--sseeccttccrreeaattee _s_e_g_n_a_m_e
_s_e_c_t_n_a_m_e _f_i_l_e
The section _s_e_c_t_n_a_m_e in the segment
_s_e_g_n_a_m_e is cre-
ated from the contents of _f_i_l_e_. The combination of
_s_e_g_n_a_m_e and _s_e_c_t_n_a_m_e must be unique;
there cannot
Apple Computer, Inc. April 10, 1997 11
LD(1) LD(1)
already be a section
_(_s_e_g_n_a_m_e_,_s_e_c_t_n_a_m_e_) in any
input object file. This option was previously
called --sseeggccrreeaattee, which will continue to be recog-
nized.
--sseeccttaalliiggnn _s_e_g_n_a_m_e _s_e_c_t_n_a_m_e
_v_a_l_u_e
The section named _s_e_c_t_n_a_m_e in the segment
_s_e_g_n_a_m_e
will have its alignment set to _v_a_l_u_e, where _v_a_l_u_e
is a hexadecimal number that must be an integral
power of 2. This can be used to set the alignment
of a section created from a file, or to increase
the alignment of a section from an object file, or
to set the maximum alignment of the (__DATA,__com-
mon) section, where common symbols are defined by
the link editor. Setting the alignment of a lit-
eral section causes the individual literals to be
aligned on that boundary. If the section alignment
is not specified by a section header in an object
file or on the command line, it defaults to 10
(hex), indicating 16-byte alignment.
--sseeccttoorrddeerr _s_e_g_n_a_m_e _s_e_c_t_n_a_m_e
_o_r_d_e_r_f_i_l_e
The section _s_e_c_t_n_a_m_e in the segment
_s_e_g_n_a_m_e of the
input files will be broken up into blocks associ-
ated with symbols in the section. The output sec-
tion will be created by ordering the blocks as
specified by the lines in the _o_r_d_e_r_f_i_l_e_. These
blocks are aligned to the output file's section
alignment for this section. Any section can be
ordered in the output file except symbol pointer
and symbol stub sections.
For non-literal sections, each line of the _o_r_d_e_r_-
_f_i_l_e contains an object name and a symbol name,
separated by a single colon (':'). If the object
file is in an archive, the archive name, followed
by a single colon, must precede the object file
name. The object file names and archive names
should be exactly the names as seen by the link
editor, but if not, the link editor attempts to
match up the names the best it can. For non-lit-
eral sections, the easiest way to generate an order
file is with the ``--jjoonnllss ++_s_e_g_n_a_m_e
_s_e_c_t_n_a_m_e''
options to _n_m(1).
The format of the _o_r_d_e_r_f_i_l_e for literal sections is
specific to each type of literal section. For C
string literal sections, each line of the order
file contains one literal C string, which may
include ANSI C escape sequences. For four-byte
literal sections, the order file format is one
32-bit hex number with a leading 0x per line, with
the rest of the line treated as a comment. For
eight-byte literal sections, the order file has two
Apple Computer, Inc. April 10, 1997 12
LD(1) LD(1)
32-bit hex numbers per line; each number has a
leading 0x, the two numbers are separated by white
space, and the rest of the line is treated as a
comment. For literal pointer sections, the lines
in the order file represent pointers, one per line.
A literal pointer is represented by the name of the
segment that contains the literal being pointed to,
followed by the section name, followed by the lit-
eral. These three strings are separated by colons
with no extra white space. For all the literal
sections, each line in the the order file is simply
entered into the literal section and will appear in
the output file in the same order as in the order
file. There is no check to see whether the literal
is present in the loaded objects. For literal sec-
tions, the easiest way to generate an order file is
with the ``--XX --vv --ss _s_e_g_n_a_m_e
_s_e_c_t_n_a_m_e'' options to
_o_t_o_o_l(1).
--sseeccttoorrddeerr__ddeettaaiill
When using the --sseeccttoorrddeerr option, any pairs of
object file names and symbol names that are found
in the loaded objects, but not specified in the
_o_r_d_e_r_f_i_l_e, are placed last in the output file's
section. These pairs are ordered by object file
(as the filenames appear on the command line), with
the different symbols from a given object file
being ordered by increasing symbol address (that
is, the order in which the symbols occurred in the
object file, not their order in the symbol table).
By default, the link editor displays a summary that
simply shows the number of symbol names found in
the loaded objects but not in the _o_r_d_e_r_f_i_l_e, as
well as the number of symbol names listed in the
_o_r_d_e_r_f_i_l_e but not found in the loaded objects.
(The summary is omitted if both values are zero.)
To instead produce a detailed list of these sym-
bols, use the --sseeccttoorrddeerr__ddeettaaiill flag.
If an object
file-symbol name pair is listed multiple times, a
warning is generated, and the first occurrence is
used.
--sseeccttoobbjjeeccttssyymmbboollss _s_e_g_n_a_m_e
_s_e_c_t_n_a_m_e
This causes the link editor to generate local sym-
bols in the section _s_e_c_t_n_a_m_e in the segment
_s_e_g_-
_n_a_m_e. Each object file that has one of these sec-
tions will have a local symbol created whose name
is that of the object file, or of the member of the
archive. The symbol's value will be the first
address where that object file's section was
loaded. The symbol has the type N_SECT and its
section number is the the same as that of the sec-
tion _(_s_e_g_n_a_m_e_,_s_e_c_t_n_a_m_e_) in the
output file. This
symbol will placed in the symbol table just before
Apple Computer, Inc. April 10, 1997 13
LD(1) LD(1)
all other local symbols for the object file. This
feature is typically used where the section is
(__TEXT,__text), in order to help the debugger
debug object files produced by old versions of the
compiler or by non-Apple compilers.
The following flags are related to symbols. These flags'
arguments are external symbols whose names have `_'
prepended to the C, FORTRAN, or Pascal variable name.
--yy_s_y_m Display each file in which _s_y_m appears, its type,
and whether the file defines or references it. Any
multiply defined symbols are automatically traced.
Like most of the other symbol-related flags, --yy
takes only one argument; the flag may be specified
more than once in the command line to trace more
than one symbol.
--YY _n_u_m_b_e_r
For the first _n_u_m_b_e_r undefined symbols, displays
each file in which the symbol appears, its type and
whether the file defines or references it (that is,
the same style of output produced by the --yy
option). To keep the output manageable, this option
displays at most _n_u_m_b_e_r references.
--kkeeeepp__pprriivvaattee__eexxtteerrnnss
Don't turn private external symbols into static
symbols, but rather leave them as private external
in the resulting output file.
--mm Don't treat multiply defined symbols as a hard
error; instead, simply print a warning. The first
such symbol is used for linking; its value is used
for the symbol in the symbol table. The other sym-
bols by the same name may be used in the resulting
output file through local references. This can
still produce a resulting output file that is in
error. This flag's use is strongly discouraged!
--wwhhyyllooaadd
Indicate why each member of a library is loaded.
In other words, indicate which currently undefined
symbol is being resolved, causing that member to be
loaded. This in combination with the above --yy_s_y_m
flag can help determine exactly why a link edit is
failing due to multiply defined symbols.
--uu _s_y_m Enter the argument _s_y_m into the symbol table as an
undefined symbol. This is useful for loading
wholly from a library, since initially the symbol
table is empty and an unresolved reference is
needed to force the loading of the first object
Apple Computer, Inc. April 10, 1997 14
LD(1) LD(1)
file.
--ee _s_y_m The argument _s_y_m is taken to be the symbol name of
the entry point of the resulting file. By default,
the entry point is the address of the first section
in the first segment.
--ii_d_e_f_i_n_i_t_i_o_n_:_i_n_d_i_r_e_c_t
Create an indirect symbol for the symbol name _d_e_f_i_-
_n_i_t_i_o_n which is defined to be the same as the sym-
bol name _i_n_d_i_r_e_c_t (which is taken to be undefined).
When a definition of the symbol named _i_n_d_i_r_e_c_t is
linked, both symbols will take on the defined type
and value.
This option overlaps with a compiler option. If
you use the compiler driver _c_c(1) to invoke _l_d,
invoke this option in this way:
--WWll,,--ii_d_e_f_i_n_i_-
_t_i_o_n_:_i_n_d_i_r_e_c_t_.
--uunnddeeffiinneedd _t_r_e_a_t_m_e_n_t
Specifies how undefined symbols are to be treated.
_t_r_e_a_t_m_e_n_t can be: _e_r_r_o_r_,
_w_a_r_n_i_n_g_, or _s_u_p_p_r_e_s_s_.
Which cause the treatment of undefined symbols as
either, errors, warnings, or suppresses the check-
ing of undefined symbols. The default is to treat
undefined symbols as errors.
--UU _s_y_m Allow the symbol _s_y_m to be undefined, even if the
--rr flag is not given. Produce an executable file
if the only undefined symbols are those specified
with --UU..
This option overlaps with a compiler option. If
you use the compiler driver _c_c(1) to invoke _l_d,
invoke this option in this way: --WWll,,--UU,,_s_y_m_.
--bbiinndd__aatt__llooaadd
Causes the output file to be marked such that the
dynamic linker will bind all undefined references
when the file is loaded or launched.
The following flags are related to stripping link edit
information. This information can also be removed by
_s_t_r_i_p(1), which uses the same options. (The exception is
the --ss flag below, but this is the same as _s_t_r_i_p(1) with
no arguments.) The following flags are listed in decreas-
ing level of stripping.
--ss Completely strip the output; that is, remove the
symbol table and relocation information.
Apple Computer, Inc. April 10, 1997 15
LD(1) LD(1)
--xx Strips the non-global symbols; only saves external
symbols.
This option overlaps with a compiler option. If
you use the compiler driver _c_c(1) to invoke _l_d,
invoke this option in this way: --WWll,,--xx..
--SS Strip debugging symbols; only save local and global
symbols.
--XX Strip local symbols whose names begin with `L';
save all other symbols. (The compiler and assem-
bler currently strip these internally-generated
labels by default, so they generally do not appear
in object files seen by the link editor.)
--bb Strip the base file's symbols from the output file.
(The base file is given as the argument to the --AA
option.)
This option overlaps with a compiler option. If
you use the compiler driver _c_c(1) to invoke _l_d,
invoke this option in this way: --WWll,,--bb..
The remaining options are infrequently used:
--ww Suppresses all warning messages.
--nnoo__aarrcchh__wwaarrnniinnggss
Suppresses warning messages about files that have
the wrong architecture for the --aarrcchh flag.
--aarrcchh__eerrrroorrss__ffaattaall
Cause the errors having to do with files that have
the wrong architecture to be fatal and stop the
link editor.
--MM Produce a load map, listing all the segments and
sections. The list includes the address where each
input file's section appears in the output file, as
well as the section's size.
This option overlaps with a compiler option. If
you use the compiler driver _c_c(1) to invoke _l_d,
invoke this option in this way: --WWll,,--MM..
--wwhhaattssllooaaddeedd
Display a single line listing each object file that
is loaded. Names of objects in archives have the
form libfoo.a(bar.o).
--ffiilleelliisstt
_l_i_s_t_f_i_l_e_[_,_d_i_r_n_a_m_e_]
Specifies that the linker should link the files
Apple Computer, Inc. April 10, 1997 16
LD(1) LD(1)
listed in _l_i_s_t_f_i_l_e _. This is an alternative to
listing the files on the command line. The file
names are listed one per line separated only by
newlines. (Spaces and tabs are assumed to be part
of the file name.) If the optional directory name,
_d_i_r_n_a_m_e is specified, it is prepended to each name
in the list file.
--hheeaaddeerrppaadd _v_a_l_u_e
Specifies the minimum amount of space ("padding")
following the headers for the MH_EXECUTE format.
_v_a_l_u_e is a hexadecimal number. When a segment's
size is rounded up to the segment alignment, there
is extra space left over, which is placed between
the headers and the sections, rather than at the
end of the segment. The hheeaaddeerrppaadd option specifies
the minimum size of this padding, which can be use-
ful if the headers will be altered later. The
default value is the 2 * sizeof(struct section) so
the program /usr/bin/objcunique can always add two
section headers. The actual amount of pad will be
as large as the amount of the first segment's
round-off. (That is, take the total size of the
first segments' headers and non-zerofill sections,
round this size up to the segment alignment, and
use the difference between the rounded and
unrounded sizes as the minimum amount of padding.)
--tt Trace the progress of the link editor; display the
name of each file that is loaded as it is processed
in the first and second pass of the link editor.
--AA _b_a_s_e_f_i_l_e
Incremental loading: linking is to be done in a
manner that lets the resulting object be read into
an already executing program, the _b_a_s_e_f_i_l_e.
_b_a_s_e_-
_f_i_l_e is the name of a file whose symbol table will
be taken as a basis on which to define additional
symbols. Only newly linked material will be
entered into the aa..oouutt file, but the new symbol
table will reflect every symbol defined in the base
file and the newly linked files. Option(s) to
specify the addresses of the segments are typically
needed, since the default addresses tend to overlap
with the _b_a_s_e_f_i_l_e_. The default format of the
object file is MH_OBJECT. Note: It is strongly
recommended that this option NOT be used, because
the dyld package described in _d_y_l_d(3) is a much
easier alternative.
--ddyylliibb__iinnssttaallll__nnaammee _n_a_m_e
For dynamic shared library files, specifies the
name of the file the library will be installed in
for programs that use it. If this is not
Apple Computer, Inc. April 10, 1997 17
LD(1) LD(1)
specified, the name specified in the --oo _n_a_m_e option
will be used. This option is used as the
_l_i_b_t_o_o_l(1) --iinnssttaallll__nnaammee
_n_a_m_e option when its
--ddyynnaammiicc option is specified.
--ddyylliibb__ccoommppaattiibbiilliittyy__vveerrssiioonn
_n_u_m_b_e_r
For dynamic shared library files, this specifies
the compatibility version number of the library.
When a library is used by a program, the compati-
bility version is checked and if the program's ver-
sion is greater that the library's version, it is
an error. The format of _n_u_m_b_e_r is
_X_[_._Y_[_._Z_]_] where
_X must be a positive non-zero number less than or
equal to 65535, and _._Y and _._Z are optional and if
present must be a positive non-zero numbers less
than or equal to 255. If the compatibility version
number is not specified, it has a value of 0 and no
checking is done when the library is used. This
option is used as the _l_i_b_t_o_o_l(1)
--ccoommppaattiibbiill--
iittyy__vveerrssiioonn _n_u_m_b_e_r option when its
--ddyynnaammiicc option
is set.
--ddyylliibb__ccuurrrreenntt__vveerrssiioonn
_n_u_m_b_e_r
For dynamic shared library files, specifies the
current version number of the library. The current
version of the library can be obtained programmati-
cally by the user of the library so it can deter-
mine exactly which version of the library it is
using. The format of _n_u_m_b_e_r is
_X_[_._Y_[_._Z_]_] where _X
must be a positive non-zero number less than or
equal to 65535, and _._Y and _._Z are optional and if
present must be a positive non-zero numbers less
than or equal to 255. If the version number is not
specified, it has a value of 0. This option is
used as the _l_i_b_t_o_o_l(1)
--ccuurrrreenntt__vveerrssiioonn _n_u_m_b_e_r
option when its --ddyynnaammiicc option is set.
--ddyylliinnkkeerr__iinnssttaallll__nnaammee _n_a_m_e
For dynamic link editor files, specifies the name
of the file the dynamic link editor will be
installed in for programs that use it.
Options available in early versions of the Mach-O link
editor may no longer be supported.
FFIILLEESS
/lib/lib*.{a,dylib} libraries
/usr/lib/lib*.{a,dylib}
/usr/local/lib/lib*.{a,dylib}
/Local/Library/Frameworks/*.framework/* framework
libraries
/Network/Library/Frameworks/*.framework/* framework
Apple Computer, Inc. April 10, 1997 18
LD(1) LD(1)
libraries
/System/Library/Frameworks/*.framework/* framework
libraries
a.out output file
SSEEEE AALLSSOO
as(1), ar(1), cc(1), libtool(1), ranlib(1), atom(1),
nm(1), otool(1) lipo(1), arch(3), dyld(3), Mach-O(5),
strip(1), redo_prebinding(1)
Apple Computer, Inc. April 10, 1997 19
Jörgen Persson <[EMAIL PROTECTED]> wrote:
>
>./load auto-str substdio.a error str.a
>/usr/bin/ld: can't use -s with input files containing indirect symbols
>(output file must contain at least global symbols, for maximum stripping
>use -x)
Try putting "cc -x" in conf-ld.
-Dave
Dave Sill wrote:
>
> Jörgen Persson <[EMAIL PROTECTED]> wrote:
> >
> >./load auto-str substdio.a error str.a
> >/usr/bin/ld: can't use -s with input files containing indirect symbols
> >(output file must contain at least global symbols, for maximum stripping
> >use -x)
>
> Try putting "cc -x" in conf-ld.
>
Then you'll get this error:
./compile auto-str.c
./load auto-str substdio.a error.a str.a
cc: auto-str: No such file or directory
cc: language -o not recognized
cc: language -o not recognized
cc: language -o not recognized
cc: language -o not recognized
make: *** [auto-str] Error 1
Is there way to avoid this?
At 03:06 1999-05-26 +0900, smurf wrote:
[snip]
>Then you'll get this error:
>
>./compile auto-str.c
>./load auto-str substdio.a error.a str.a
>cc: auto-str: No such file or directory
>cc: language -o not recognized
>cc: language -o not recognized
>cc: language -o not recognized
>cc: language -o not recognized
>make: *** [auto-str] Error 1
>
>Is there way to avoid this?
I removed all of the linking options and came to the part looking for the
users although I've edited /etc/passwd & /etc/group
Tried to add the user "alias" the graphical way and it seems to work out
better. The problem is that the files in /etc doesn't change. Where are
those files then?
Jörgen Persson
Datoransvarig, Teknologkåren vid LTH
[EMAIL PROTECTED] (smurf) writes:
Then you'll get this error:
./compile auto-str.c
./load auto-str substdio.a error.a str.a
cc: auto-str: No such file or directory
cc: language -o not recognized
cc: language -o not recognized
cc: language -o not recognized
cc: language -o not recognized
make: *** [auto-str] Error 1
Is there way to avoid this?
I ran into a similar problem on OpenStep 4.1. I used just "cc" in conf-ld
and it worked, IIRC. Try "cc -Wl,-x" or maybe "cc -Wl,x"; my local Mac OS
X box is down, so I can't check this out there.
Hi
I've made it down to pop3d now, almost done :)
Remove all linking options in conf-ld (one can strip afterwards, haven't
tried yet though) and add the users the graphical way (still haven't found
the right files to change, it's not /etc/passwd & /etc/group).
Anyway... I still have more problems, any ideas?
./compile qmail-pop3d.c
./compile commands.c
./compile maildir.c
./load qmail-pop3d commands.o case.a timeoutread.o \
timeoutwrite.o maildir.o prioq.o now.o env.a strerr.a sig.a \
open.a getln.a stralloc.a alloc.a substdio.a error.a str.a \
fs.a `cat socket.lib`
/usr/bin/ld: Undefined symbols:
_strerr_sys
make: *** [qmail-pop3d] Error 1
Jörgen Persson
Datoransvarig, Teknologkåren vid LTH
On 21 May 99, at 12:01, [EMAIL PROTECTED] wrote:
> anyone using qmail to relay to louts notes? we are doing this now by using qmail
> to relay to our internal lotus notes server.
We are using Lotus Notes 4.6a and qmail 1.03 in nearly the same
way without any problem. Qmail is running on our dual-homed
Firewall (bound private and officall IP´s) for security reasons and
forwards all messages to our internal Notes-Server that only uses
one private IP-Address. All Mail for Notes will be adressed to
domain.com and then forwarded with smtp-routes without using
any MX-Record. We have no need to start and stop the queue
manually because this works fine now for several months. How
many incoming messages do you have and how looks your general
setup? Perhaps it is a mass-problem (on the Notes side of course!).
Grettings from germany,
Roland
On Fri, May 21, 1999 at 03:46:33PM -0500, Fred Lindberg wrote:
> On Fri, 21 May 1999 12:01:16 -0400, [EMAIL PROTECTED] wrote:
> Qmail is a little smarter than sendmail. It uses a quadratic backoff,
> so the interval for any given message increases as the message ages.
I have a table of the "qmail-send retry times" at
http://www.lamer.de/maex/creative/software/qmail/times.html
The table lists data for
/var/qmail/control/queuelifetime
set to values up to
1209600 (two weeks) (Default: 604800 (one week))
HTH
\Maex
--
SpaceNet GmbH | http://www.Space.Net/ | Yeah, yo mama dresses
Research & Development | mailto:[EMAIL PROTECTED] | you funny and you need
Joseph-Dollinger-Bogen 14 | Tel: +49 (89) 32356-0 | a mouse to delete files
D-80807 Muenchen | Fax: +49 (89) 32356-299 |
Markus Stumpf <[EMAIL PROTECTED]> wrote:
>
>I have a table of the "qmail-send retry times" at
>
> http://www.lamer.de/maex/creative/software/qmail/times.html
>
>The table lists data for
> /var/qmail/control/queuelifetime
>set to values up to
> 1209600 (two weeks) (Default: 604800 (one week))
I've got one at:
http://Web.InfoAve.Net/~dsill/lwq.html#retry-schedule
It only goes up to seven days, but it gives the retry times in
seconds, too.
-Dave
Hi there,
I need to know: Have qmail a bin that return input/output messages
estatistics ?
Something like to mailstats from sendmail.
Thanks for your help.
--
######################
Juliana Romano
Internetcom-NOC
######################
Juliana Romano <[EMAIL PROTECTED]> wrote:
>
>I need to know: Have qmail a bin that return input/output messages
>estatistics ?
>
>Something like to mailstats from sendmail.
See:
http://Web.InfoAve.Net/~dsill/lwq.html#qmailanalog
-Dave
Does anybody know of a more recent survey than that at
http://pobox.com/~djb/surveys/smtpsoftware3.txt ?
Greetz, Peter
--
| 'He broke my heart, | Peter van Dijk |
I broke his neck' | [EMAIL PROTECTED] |
nognikz - As the sun | Hardbeat@ircnet - #cistron/#linux.nl |
| Hardbeat@undernet - #groningen/#kinkfm/#vdh |
Hi,
I've just restarted my mail server, (having not got the origional pop3d boot up script)
using this line in /etc/inetd.conf
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup ice.gradwell.com
/bin/checkpassword
/var/qmail/bin/qmail-pop3d Maildir
(all one line)
and when I try a pop3 session, I get an
-ERR this user has no $HOME/Maildir
error:
[peter@tea peter]$ telnet ice.gradwell.com 110
Trying 194.205.225.96...
Connected to ice.gradwell.com.
Escape character is '^]'.
+OK <830.927664332@/bin/checkpassword>
USER peter
+OK
PASS pass
-ERR this user has no $HOME/Maildir
Connection closed by foreign host.
however, it does exist:
drwxr-xr-x 5 peter users 1024 Mar 28 19:51 Maildir/
peter@ice:~$ ls -al Maildir
total 14
drwxr-xr-x 5 peter users 1024 Mar 28 19:51 ./
drwxr-xr-x 45 peter users 4096 May 25 21:03 ../
drwx------ 2 peter users 6144 May 18 12:52 cur/
drwx------ 2 peter users 2048 May 25 21:09 new/
drwx------ 2 peter users 1024 May 25 21:09 tmp/
can some one pass me a clue please?
thanks
peter.
--
peter at gradwell dot com; http://www.gradwell.com/
gradwell dot com Ltd. Enabling the internet you don't see.
... just another (profitable) student ...
At 2:56 pm -0700 25/5/99,the wonderful Mahlon Smith wrote:
>Your permissions for your Maildir appear to be incorrect.
>Should read:
>drwx------ 5 peter users 1024 Mar 28 19:51 Maildir/
>
>Always best (and easiest) to create Maildirs with the supplied
>maildirmake command.
>(/var/qmail/bin/maildirmake by default.)
>
hum, done that, deleted the old one and put in the new one...
one thing I notice is that in the DJB faq he uses this:
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup ice.gradwell.com
/bin/checkpassword
/var/qmail/bin/qmail-pop3d Maildir
where as in Dave's life with qmail he recomends this:
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup ice.gradwell.com
checkpassword
/var/qmail/bin/qmail-pop3d Maildir
- note the extra qmail-popup
??
thanks
peter.
--
peter at gradwell dot com; http://www.gradwell.com/
gradwell dot com Ltd. Enabling the internet you don't see.
** Cheap and easy ecommerce: http://www.gradwell.net/ **
Your permissions for your Maildir appear to be incorrect.
Should read:
drwx------ 5 peter users 1024 Mar 28 19:51 Maildir/
Always best (and easiest) to create Maildirs with the supplied
maildirmake command.
(/var/qmail/bin/maildirmake by default.)
--------------------------
Mahlon Smith
InternetCDS
http://www.internetcds.com
On Tue, 25 May 1999, Peter Gradwell wrote:
>
> Hi,
>
> I've just restarted my mail server, (having not got the origional pop3d boot up
>script)
>
> using this line in /etc/inetd.conf
>
> pop3 stream tcp nowait root /var/qmail/bin/qmail-popup ice.gradwell.com
>/bin/checkpassword
> /var/qmail/bin/qmail-pop3d Maildir
>
> (all one line)
>
> and when I try a pop3 session, I get an
> -ERR this user has no $HOME/Maildir
>
> error:
>
> [peter@tea peter]$ telnet ice.gradwell.com 110
> Trying 194.205.225.96...
> Connected to ice.gradwell.com.
> Escape character is '^]'.
> +OK <830.927664332@/bin/checkpassword>
> USER peter
> +OK
> PASS pass
> -ERR this user has no $HOME/Maildir
> Connection closed by foreign host.
>
>
> however, it does exist:
>
> drwxr-xr-x 5 peter users 1024 Mar 28 19:51 Maildir/
>
> peter@ice:~$ ls -al Maildir
> total 14
> drwxr-xr-x 5 peter users 1024 Mar 28 19:51 ./
> drwxr-xr-x 45 peter users 4096 May 25 21:03 ../
> drwx------ 2 peter users 6144 May 18 12:52 cur/
> drwx------ 2 peter users 2048 May 25 21:09 new/
> drwx------ 2 peter users 1024 May 25 21:09 tmp/
>
> can some one pass me a clue please?
>
> thanks
>
> peter.
>
> --
> peter at gradwell dot com; http://www.gradwell.com/
> gradwell dot com Ltd. Enabling the internet you don't see.
>
> ... just another (profitable) student ...
>
On Tue, May 25, 1999 at 11:08:06PM +0100, Peter Gradwell wrote:
> one thing I notice is that in the DJB faq he uses this:
>
> pop3 stream tcp nowait root /var/qmail/bin/qmail-popup ice.gradwell.com
>/bin/checkpassword
> /var/qmail/bin/qmail-pop3d Maildir
>
> where as in Dave's life with qmail he recomends this:
>
> pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup ice.gradwell.com
>checkpassword
> /var/qmail/bin/qmail-pop3d Maildir
>
> - note the extra qmail-popup
The second example is correct. However you might want to add a full path
in front of the "checkpassword". Maybe it cannot be found and because of
that you get the error.
\Maex
--
SpaceNet GmbH | http://www.Space.Net/ | Yeah, yo mama dresses
Research & Development | mailto:[EMAIL PROTECTED] | you funny and you need
Joseph-Dollinger-Bogen 14 | Tel: +49 (89) 32356-0 | a mouse to delete files
D-80807 Muenchen | Fax: +49 (89) 32356-299 |
Hi,
I've just had a few hours with qmail-pop3d and I'd like to highlight a few things i've
learn't...
I started out with this in inetd.conf and a broken Maildir permissions.
Fixing the permissions was easy, but this still was reporting a 'no home/maildir found'
> pop3 stream tcp nowait root /var/qmail/bin/qmail-popup ice.gradwell.com
>/bin/checkpassword
> /var/qmail/bin/qmail-pop3d Maildir
so, I wen't to the djb faq and looked at this:
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup ice.gradwell.com
/bin/checkpassword
/var/qmail/bin/qmail-pop3d Maildir
and also to Dave's wonderful life with qmail...
pop3 stream tcp nowait root /var/qmail/bin/qmail-popup qmail-popup ice.gradwell.com
checkpassword
/var/qmail/bin/qmail-pop3d Maildir
but non of these worked.
So I went back to checkpassword, recompiled, ran the tests, and it worked :-(
so I gave up on inetd, and went to tcpserver...
I tried this:
tcpserver 0 110 /var/qmail/bin/qmail-popup ice.gradwell.com \
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &
but this didn't work either... so I went back to the checkpassword tests, and found I
was using
'ice' as my hostname. This finally works:
tcpserver 0 110 /var/qmail/bin/qmail-popup ice \
/bin/checkpassword /var/qmail/bin/qmail-pop3d Maildir &
Now, I'm not sure, why, how or where the difference is, but I though't I'd record this
for archive
prosperity, and I'd like to urge all you knowledgeable documentation writers to
mention it! 'cause
it's just cost me several hours of sleep :-)
thanks to Manohar Pradhan for his help.
peter.
--
peter at gradwell dot com; http://www.gradwell.com/
gradwell dot com Ltd. Enabling the internet you don't see.
... just another (profitable) student ...
On Wed, May 26, 1999 at 12:12:55AM +0100, Peter Gradwell wrote:
> Now, I'm not sure, why, how or where the difference is, but I though't I'd record
>this for archive
> prosperity, and I'd like to urge all you knowledgeable documentation writers to
>mention it! 'cause
> it's just cost me several hours of sleep :-)
There should be absolutely no difference between using "ice" and
"ice.gradwell.com" as it is only used for the greeting, i.e. instead of
+OK <[EMAIL PROTECTED]>
you'll now see
+OK <26465.927679930@ice>
The reasons for your problems must be something else.
However, it looks like they're fixed now :-)))
\Maex
--
SpaceNet GmbH | http://www.Space.Net/ | Yeah, yo mama dresses
Research & Development | mailto:[EMAIL PROTECTED] | you funny and you need
Joseph-Dollinger-Bogen 14 | Tel: +49 (89) 32356-0 | a mouse to delete files
D-80807 Muenchen | Fax: +49 (89) 32356-299 |
Hello all,
After having a brief run in with onelist.com and a list problem (1000's of
messages per hour) I wanted to use .qmail to filter the messages to a
user.
I went through dot-qmail and envelope, but I really didn't pick up the
environment variable set for the specific envelope parts, I figured out
$SENDER, but what are the others (if any) and what is the most effective
way to use a bash expression to filter the mail? Looks like regex's may
not be the best?
Thanks!
Paul D. Farber II
Farber Technology
Ph. 570-628-5303
Fax 570-628-5545
[EMAIL PROTECTED]
+ Paul Farber <[EMAIL PROTECTED]>:
| I went through dot-qmail and envelope, but I really didn't pick up
| the environment variable set for the specific envelope parts,
Try qmail-command(8).
- Harald
G'day all,
Can anyone tell me how often retry time is for delayed mail ??
My setup is
we setup mail to forward to exchange servers that are dialed only
intermittantly.
So .... Primary MX records are set to forward mail directly to the Exchange
servers which
are on static IP numbers with properly configured DNS entries. So far so
good,
that all works great. When mail arrives for them and they aren't dialed in
is falls
back to our machine being the secondary MX for their Domain.
My question is, how long do they need to stay connected to be sure they have
collected any mail queued on oure system running which is running qmail
Andrew Gray
Network Engineer
NetConnect Communications
Ballarat, Vic., Aust
[EMAIL PROTECTED]
We've been testing QMail as a replacement mail hub for our old Sendmail
system, but have come against a few brick walls to do with supporting legacy
mainframe mail systems.
We need to be able to rewrite the address of a recipient while sending to
another host-name. Adding DNS MX/CNAME records is no good because since the
SMTP process on the mainframes are so cumbersome, in some critical cases we
have to send through one host to another and allow the Mainframe system to
deliver through its MTA to the other host. This other host also has a
regular SMTP connection, and it's no good having a dedicated Mainframe for
mail.
With sendmail, we use a rule like:
R$*<@$*.mf>$* $#tcpld$@<host1>$:$1@$2.mf
R$*<@$*.mf-alerts>$* $#tcpld$@<host2>$:$1@$2.mf
R$*<@$*.mf-alerts2>$* $#tcpld$@<host3>$:$1@$2.mf
...which sets the specific host, and rewrites the address into one that the
Mainframe can recognise. I worked out a 'hack' using virtual domains ->
alias files and piping the message to qmail-remote, but then had to write a
script to turn qmail-remote's output into error codes:
|qmail-remote <host2> "$SENDER" `/usr/local/share/substdom -d -m
"$DEFAULT@$HOST" -f "mf-alerts" -t "mf"` | qmail-remote-exit
(where substdom is a simple address re-writing sed script and
qmail-remote-exit turns qmail-remote's output into error codes)
I'm sure I'm doing it the hard way, but I'm a bit stumped as to where to
go.
And does anyone know of any utilities for qmail that can do batched SMTP,
similarly to serialmail, but with the same host-redirection/address
rewriting capabilities as above -- even if as a plug-in?
--
Will Robertson. Unix SysAdmin. (mailto:[EMAIL PROTECTED])
Data General (Europe)
I don't suffer from stress... I'm a carrier
Thanks !
-Per
Per Birkeby wrote:
>
> Thanks !
>
> -Per
[EMAIL PROTECTED]
jason
Greetings,
I've searched the http://www.ornl.gov/ site for this but couldn't find
anything that seemed to relate specifically.
(Don't bother trying to look at our dns yet it's only operating behind our
firewall)
We have two domains, mclachlan.com.au and mclachlanlister.com.au and I've
set up dns as follows:
mclachlan.com.au IN MX 10 checkov.mclachlan.com.au. ; Primary Mail
Exchanger
mclachlanlister.com.au IN MX 10 checkov.mclachlan.com.au. ; Primary Mail
checkov is the primary and sulu and picard are secondary dns'
but I want checkov to send mail for mclachlan.... to picard and mail for
mclachlanlister... to sulu, however I do want checkov to be the smtp host
for both domains. To facilitate this I set up virtualdomains for
mclachlan... and mclachlanlister.... on checkov as per the FAQ.
I want client's in mclachlanlister to connect to their local server (sulu)
and clients in mclachlan to connect to their designated server (picard). It
seems to work OK except that on picard if I try and send to myself (say) by
typing:
echo To: [EMAIL PROTECTED] | /var/qmail/bin/qmail-inject
then the message get's bounced because picard can't find the host name.
This happens for both domains. What I would like to happen is for the mail
to be delivered locally if either mclachlan or mclachlanlister or sent to
checkov if for the sister domain (or some external domain). At present the
local servers are connecting directly rather than sending external mail to
checkov first (ie. I am using picard for outgoing which connects directly
to the smtp host).
Any suggestions ?
(Oh incidently checkov and sulu use bind-8 and picard is still using bind-4
but checkov is the only one that will eventually be visible outside our
firewall)
Thanks,
Wilson Fletcher