On Tue, 28 May 2002, Igor Khasilev wrote:
[...skip...]
IK> > cc -fast -xarch=native64 -xO3 -D_REENTRANT -DSOLARIS -mt -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_BITS=64 -DWITH_LARGE_FILES -DHAVE_CONFIG_H oops.o lib.o run.o
run_client.o common.o http_utils.o ftp_utils.o storage.o garbage_c.o icp.o acl.o
y.tab.o lex.yy.o rotate_logs.o clean_disk.o ssl.o list.o statistics.o worker.o
dataq.o hash.o modules.o workq.o gnu_regex.o modules/accel.o
modules/berkeley_db_api.o modules/gigabase_db_api.o modules/custom_log.o modules/err.o
modules/fastredir.o modules/lang.o modules/log_dummy.o modules/oopsctl_mod.o
modules/passwd_file.o modules/pam.o modules/passwd_mysql.o modules/passwd_pgsql.o
modules/redir.o modules/transparent.o modules/vary_header.o modules/wccp2.o -lm
-ly -ll -lpam -lsocket -lnsl -o oops
IK> > Undefined first referenced
IK> > symbol in file
IK> > sys_nerr lib.o
IK> > ld: fatal: Symbol referencing errors. No output written to oops
IK> > *** Error code 1
IK> >
IK> > ���� sys_nerr ���� � libc.so.
IK>
IK> ����� ���� � ����?
IK> $ nm /usr/lib/64/libc.so | grep sys_nerr
IK> [208] | 698968| 4|OBJT |LOCL |0 |13 |_sys_nerr
IK> [354] | 698968| 4|OBJT |LOCL |0 |13 |sys_nerr
IK> $ nm /usr/lib/libc.so | grep sys_nerr
IK> [3531] | 667296| 4|OBJT |GLOB |0 |13 |_sys_nerr
IK> [4367] | 667296| 4|OBJT |WEAK |0 |13 |sys_nerr
��. ������. ��� ��� � errno.h �������:
#if defined(_LP64)
/*
* The symbols _sys_errlist and _sys_nerr are not visible in the
* LP64 libc. Use strerror(3C) instead.
*/
#endif /* _LP64 */
IK> > ���� �������� xarch �� native, �� ��� ���������� ��� �������.
IK>
IK> ��� ��� ��������� � ��� �������...
��������� 32-������� ���.
IK> ���������� ������ �� ����� lib.c ������ �����
IK>
IK> if (err < 0 || err >= sys_nerr) {
IK> snprintf(errbuf, lerrbuf, "Unknown error: (%d)", err);
IK> return(-1);
IK> }
IK> else
��� ���, ��� �������, ��������:
*** lib.c.orig Tue May 28 20:29:01 2002
--- lib.c Tue May 28 20:49:19 2002
***************
*** 1214,1226 ****
int
strerror_r(int err, char *errbuf, size_t lerrbuf)
{
if (err < 0 || err >= sys_nerr) {
snprintf(errbuf, lerrbuf, "Unknown error: (%d)", err);
return(-1);
}
! else
! strncpy(errbuf, strerror(err), lerrbuf);
! errbuf[lerrbuf-1] = 0;
return(0);
}
#endif /* !HAVE_STRERROR_R && !_WIN32 */
--- 1214,1234 ----
int
strerror_r(int err, char *errbuf, size_t lerrbuf)
{
+ #if !defined(SOLARIS) || !defined(_LP64)
if (err < 0 || err >= sys_nerr) {
snprintf(errbuf, lerrbuf, "Unknown error: (%d)", err);
return(-1);
}
! strncpy(errbuf, strerror(err), lerrbuf);
! #else
! char *es = strerror(err);
! if (es == NULL) {
! snprintf(errbuf, lerrbuf, "Unknown error: (%d)", err);
! return(-1);
! }
! strncpy(errbuf, es, lerrbuf);
! #endif /* !SOLARIS || !_LP64 */
! errbuf[lerrbuf-1] = 0;
return(0);
}
#endif /* !HAVE_STRERROR_R && !_WIN32 */
����� ����� �������� � CVS?
--
Sincerely,
Alexey Luckyanchikov
=====================================================================
If you would like to unsubscribe from this list send message to
[EMAIL PROTECTED] with "unsubscribe oops" in message body.
Archive is accessible on http://lists.paco.net/oops-rus/