Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z
faqs.org - Internet FAQ Archives

Quarterly ASCII posting of SCO Programmer's FAQ


[ Usenet FAQs | Web FAQs | Documents | RFC Index | Property taxes ]
Archive-name: sco/programmers-faq
Posting-Frequency: quarterly
Version: 1.0.3a
Last-modified: 2007/11/26
URL: http://www.zenez.com/cgi-bin/scoprogfaq/faq
Copyright: (c) 1999-Present SCO Programmer's FAQ
Maintainer: Boyd Lynn Gerber <gerberb@zenez.com>
Disclaimer: Approval for *.answers is based on form, not content.

See reader questions & answers on this topic! - Help others by sharing your knowledge
comp.unix.sco.programmer "SCO Programmer's FAQ" is best viewed in html
because of its format.  Please visit our website at

http://www.zenez.com/cgi-bin/scoprogfaq/faq
 
SCO Programmer's FAQ ASCII. 


THE_URL:http://www.zenez.com/cgi-bin/scoprogfaq/faq?_recurse=1
THE_TITLE:SCO comp.unix.sco.programmer FAQ.
   (Category) SCO comp.unix.sco.programmer FAQ.
   This services tries to provide answers to the Frequently Asked
   Questions in news:comp.unix.sco.programmer.
   A backup of the most important files are on.
   ftp://ftp.lerctr.org/pub/zenez/
   Thanks to Larry Rosenman ler@lerctr.org

   Since it is based on traffic in that group, it has a definite slant
   toward the SCO (Caldera) UNIX/OpenDesktop/OpenServer product families.
   However coverage is given to the UnixWare 7(OpenUNIX 8)/OpenServer 6
   and OpenServer Development Kit (UDK) as well.

   It doesn't try to cover the same ground as the existing FAQs such as
  The comp.sco.misc FAQ
        http://aplawrence.com/SCOFAQ/
  The comp.unix.programmer FAQ
        http://www.erlenstar.demon.co.uk/unix/faq_toc.html.
  Csh Programming Considered Harmful
        http://www.faqs.org/faqs/unix-faq/shell/csh-whynot/
  Raw IP Networking FAQ
        http://www.whitefang.com/rin/
  The UnixWare 7/OpenUNIX 8/OpenServer 6 FAQ.
        http://www.zenez.com/cgi-bin/ou8faq/faq

  The UnixWare FAQ
        http://www.freebird.org/faq/
  The UnixWare 1.x and 2.0 Programmer FAQ
        http://www.freebird.org/faq/developer.html
  Caldera Support Knowledge Base
        http://support.caldera.com/caldera

   or many of the other great FAQs available at
        http://www.faqs.org

   It is strongly encouraged that the answers in here address Caldera
   (SCO) UNIX -specific issues.

   It is run from the Faq-O-Matic accessable at
   http://www.zenez.com/cgi-bin/scoprogfaq/faq
   , which means you can create your own entries and amplify or correct
   and answers that are here.

   Notes to contributors:
   You will need to go to the appearance link at the bottom and click on
   it.  You then select show and show all and then accept.  This will allow
   you to see the options available.  You choose the option you want and
   a new screen will come up asking for your email address and password.
   You must have an authenticated email address and password.  If you have
   one just enter it and continue.  If you do not will need to be added,
   a email address and password is required to add or make changes to this
   FAQ.  Please help us maintain this FAQ as it is for the entire group.
   When entering "natural text" where you still want some control over the
   formatting (as this section) note that blank lines must really be blank
   (not tabs, not spaces) to start a new paragraph.

   Subcategories:
   (Category) SCO Development Environments.
   (Category) Hardware related programming
   (Category) Known bugs in SCO Programming Environments.
   (Category)   Third-party  Languages  and  Development  Tools  for  SCO
   Platforms
   (Category)  Misc  for  OpenServer  5.0.X and Unixware 7.x.x / OpenUNIX
   8.x.x
   (Category) How to Find FAQ
   [New Answer in "SCO comp.unix.sco.programmer FAQ."]
   (Category) (Category) SCO comp.unix.sco.programmer FAQ. :
   SCO Development Environments.
   Insert  useful  description  here.  What's  in this group? Why does it
   exist? What doesn't belong here?

   Right now, this group tends to be sort of a "catch-all".

   It  is  important  to remember that robertl or gerberb are not the FAQ
   maintainer. YOU are the FAQ maintainer. If you're tired of answering a
   question  or seeing it answered in news:comp.unix.sco.programmer it is
   your duty as a good net.citizen to plonk the answer into this FAQ.

   As you find useful information for programming on SCO OS's, Please add
   it to this FAQ. THANKS!
   robertlipe@usa.net, gerberb@zenez.com
   Answers in this category:
   (Answer)  I  have  a 3.2v4.2 (or earlier) based system. I don't have a
   compiler. What are my options?
   (Answer)  I  have a 3.2v4 OS and the SCO 3.2v4 DS. I'm trying to build
   something and seem to be missing headers and libraries.
   (Answer)  I  have an OpenServer based system. I don't have a compiler.
   What are my options?
   (Answer)  I  tried  to  build  GCC  on  OpenServer 5 and it burst into
   flames.
   (Answer) Issues with GDB on OpenServer and UnixWare.
   (Answer)  How  can  I  build  XENIX  or  DOS binaries on my OpenServer
   system?
   (Answer)   Can  I  generate  binaries  that  run  on  older  sysem  on
   OpenServer?
   (Answer)  Will  ELF  binaries  compiled  on OpenServer run on anything
   else?
   (Answer) Link errors on functions like gethostbyaddr, gethostbyname
   (Answer) How do I read or traverse directories within a program?
   (Answer) How can I detect null references in my program?
   (Answer) Where is alloca()?
   (Answer) Purify or other malloc checkers.
   (Answer)  How  can  I  read  kernel  data  through /dev/kmem in a user
   program?
   (Answer) How to detect SCO product or version at compile time?
   (Answer) How to write dialers
   (Answer) POSIX Timers
   (Answer) How do I play nice with UUCP locking?
   (Answer) SCO CC and foo.cc
   (Answer) Which C compiler delivers the best performance?
   (Answer) POSIX threads or threads for Unixware and/or OpenServer 5.0.X
   and ODT 3.0?
   (Answer) Where to get STL for SCO C++?
   (Answer)  Software packaging and distribution options for OpenServer &
   earlier releases
   (Answer) Issues if you develop on 5.0.4 and run on earlier OpenServer
   (Answer)  Issues  when  compiling on OpenServer, executing on 3.2v4 or
   earlier
   (Answer)  C++:  Using STL in a library and I get link errors from it -
   Now what?
   (Answer)  C++: I'm building C++ source with the UDK and I get warnings
   about 'omission of explicit type is nonstandard ("int" assumed)'
   (Answer) Where to get ANSI/ISO C++ standard library for SCO?
   (Answer) My existing C++ code doesn't compile under UDK C++!
   (Answer) Recommended books on UNIX internals
   (Category) Using FSU Pthreads on SCO systems
   (Answer) OLD GDS (as on Skunkware) vs. New GCC 2.95.X or GCC 3.0.X
   (Answer) Building Shared libraries with GCC or SCO cc
   (Answer) Will UnixWare 2.1 or 7.0 run ibcs/OpenServer binaries?
   (Answer)  Building  GCC  2.8.0  on  OpenServer  results in alloca link
   failure early during the build.
   (Answer) I installed GDS or GCC binary kit and nothing works.
   (Answer)  When  I  run  gcc  on  osr5 I get "cc: installation problem,
   cannot exec `cpp': No such file or directory"
   (Answer) Building Perl5.005_03
   (Answer) Build DBI with gcc after building perl5.005_03 with SCO cc
   (Answer) What's the UDK link order for building Motif programs?
   (Answer) Is UDK C++ thread safe?
   (Answer)  On  osr5  when  I  dlopen  a  shared  library  I get "symbol
   unresolved" errors
   (Answer) Often used or need Flags when using compilers
   (Answer)  I am having trouble building and running an application with
   gcc, but someone else is not.
   (Answer) Assembler overview; differences of "AT&T" vs. "Intel" syntax
   (Answer) What popular compilers are available?
   (Answer) Gnu pthreads pth-1.2.2 passes all tests on OSR 5.0.5
   (Answer)  How  do  I get BerkeleyDB.3.1 to compile on OpenServer 5.0.X
   and UnixWare 7.X.X?
   (Answer) OpenServer 5.0.X, Error as or ld illegal option --b or as: TO
   FIX:  Usage: [-Qyn] [-VTRmn] [-Ydm,dir] [-o outfile] [-t target] file.
   What is wrong?
   (Answer)  What  patches  are needed for OpenSSL 0.9.6b for UnixWare or
   OpenUNIX 8?
   (Answer)   How   do   I  fix  Msql-Mysql-modules-1.2216  problem  with
   __deregister_frame_info?
   (Answer)  What  is need to compile MySQL on SCO Operating Systems (OS)
   OpenServer and UnixWare 7.X.x?
   (Answer) Resources on the SCO web site.
   (Answer) How do I determine which development System is best for me to
   use?
   (Answer)  How  do  I  determine  what dynamic libraries an application
   depends upon?
   (Answer) How do I do Java programming?
   (Answer) How do I do Java native code (JNI) programming?
   (Answer)  Why  are  there two threads APIs on UnixWare? Which should I
   use?
   (Answer) How do I do XML programming?
   (Answer) How do I do Web Services (SOAP) programming?
   (Answer) What J2EE implementations or Java app servers are available?
   (Answer) About C language and Oracle C API
   [New Answer in "SCO Development Environments."]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   I  have  a 3.2v4.2 (or earlier) based system. I don't have a compiler.
   What are my options?
   If  you  really  want  to  be  able  to  compile anything, buy the SCO
   Development  system.  That  version  (and earlier) of SCO UNIX did not
   come  with the needed libraries or headers to allow use of third party
   compilers.  While some people on the net have put together packages to
   allow  you  to  compile  minimal  programs,  there  are  still lots of
   problems  in  the  area  of  networking  and X that remain unresolved.
   Before  you  buy  the  compilers  for  this old version of the OS, you
   should probably consider the upgrade to OpenServer.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   I  have a 3.2v4 OS and the SCO 3.2v4 DS. I'm trying to build something
   and seem to be missing headers and libraries.
   In that version of the OS, the TCP/IP and NFS development systems were
   not  included  in  the  DS, but were bundled as separate packages. You
   have  to  either  get  the  "TCP/IP  Development  Kit"  and  the  "NFS
   Develoment"  kit  or consider the upgrade paths mentioned above. These
   will give you, for example, libsocket.
   robertlipe@usa.net
   There   were  always  bundled  DS's  (ODT  DS)  corresponding  to  the
   same-time-release  Unix, TCP, NFS, etc. DS's. Unfortunately, packaging
   was  such that if you had standalone Unix + TCP, you needed standalone
   Unix DS, TCP DS. Couldn't use Unix + ODT DS, nor ODT + Unix DS (though
   the  latter might actually have worked, I forget). So if you're trying
   to buy a DS now, you need to be aware of the many opportunities to buy
   the wrong thing.
   From Bela Lubkin, minor editing by robertl
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   I  have  an OpenServer based system. I don't have a compiler. What are
   my options?
   If  you're  using  Free  OpenServer  and  comply  with  the  licensing
   requirements,  install  the Free OpenServer compiler from the same CD.
   You  cannot  install  the  Free  OpenServer compiler on a commercially
   licensed OpenServer.

   SCO's  OpenServer  Development  system  is available as a commercially
   supported  product  and  includes  two compilers, debuggers, and tools
   such   as   the   custom  distribution  mastering  toolkit.  For  more
   information,  see  http://www.sco.com/developer/products.htm.  The SCO
   part  number for SCO OpenServer Development System (media and license)
   is SA105-UX74-5.0.

   OpenServer  includes  all the necessary libraries, headers, man pages,
   and  the  linker  to allow the user of third party develoment systems.
   One  such system is the GNU Development System that's available on the
   Skunkware CD or the newer version available on Robert Lipe's home page
   and   mirrored  on  SCO's  Web  site.  This  kit  includes  make,  the
   assemblers,  the  debuggers,  and everything you need for a functional
   development environment.
   This  kit  is  available  at ftp://ftp.zenez.com/pub/zenez/gcc and has
   documentation  at  ftp://ftp.zenez.com/pub/zenez/gcc/sco_ds.html and a
   little  FAQ  of  its own (that should ultimately be smooshed into this
   one) at ftp://ftp.zenez.com/pub/zenez/gcc/gds_faq.html .
   robertlipe@usa.net
   See also http://www.sco.com/developers/products/devkits.html.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   I tried to build GCC on OpenServer 5 and it burst into flames.
   It  is  time  to  start  using  newer  version  of gcc. Take a look at
   ftp://ftp2.caldera.com/pub/
   This is left for historical purposes.
   The  first FSF release of GCC to include the necessary support to host
   or  target OpenServer was 2.8.0. EGCS has supported OpenServer 5 since
   the epoch. Anything before this requires a patched version of GCC.
   Robert  Lipe  did  the  port  of  the  GNU  tools  that appears on the
   Skunkware  '96 CD and on ftp://ftp2.caldera.com/pub/Skunk96 or the old
   site  ftp://ftp.sco.com  .  It  is not a simple matter of 'configure ;
   make  install'.  It's a complicated product to build and unless you're
   planning  to slog around in compiler internals, you really want to use
   the available binary kits.
   It   is   time   that   you  start  using  a  newer  gcc.  Please  see
   ftp://ftp2.caldera.com/pub/skunkware   .  This  is  also  mirrored  on
   ftp://ftp.sco.com/skunkware  .  It  is  required  that you install the
   necessary  libraries  and  headers as described in the documention for
   that package that is in the "sco_ds.html" file at those URLs.

   The  major  contributors  of the OpenServer code in GCC (Kean Johnston
   and Robert Lipe) are active members of the EGCS development team. EGCS
   is an enhanced GNU compiler system. EGCS contains complete support for
   OpenServer  5  in  both  COFF  and  ELF  modes  and  has received much
   attention and testing. See http://gcc.gnu.org for more details.

   GCC  does include support for 3.2v4.2 and earlier SCO releases, though
   it requires the SCO development system be installed.
   EGCS also includes support for UnixWare 7 and for UDK.
   robertlipe@usa.net, gerberb@zenez.com
   GCC  2.8.0,  released in 01/98, almost has functioning support for the
   OpenServer family of products. There is another entry in this FAQ that
   contains the necessary directions to circumvent the problem.
   robertlipe@usa.net
   In  recent  years, GCC 2.95.3 has packaged and supported for OSR5 (and
   UW7 as well). No GCC 3.x is as of yet provided by SCO.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Issues with GDB on OpenServer and UnixWare.
   OpenServer  5  support  in  GDB  was sneaked into GDB 4.16 at the last
   minute and suffered from some problems. You must run

   configure --target=i486-unknown-sco3.2v5.0.0elf'

   to get a gdb that recognizes both COFF and ELF.

   Generally, you'll be better off using a GDB from Skunkware or building
   a newer version. 4.17 and 4.18 seem to work well.
   robertlipe@usa.net
   GDB 4.17 works well on OpenServer.
   robertlipe@usa.net
   GDB  4.18  seems  to  work OK for OpenServer. For UnixWare 7, you must
   either  configure  --target=i686-UnixWare7-sysv42mp  or  apply a minor
   patch to configure.tgt.
   robertlipe@usa.net
   If  you  are  using gdb (or the native debugger) on Openserver and you
   get  warnings  of the form "no debugging symbols" on an ELF executable
   even  though  you  are  sure  you  gave specified -g on the object and
   executable  build  lines  make  sure  that  *all*  the  objects  ( and
   libraries) going into the executable are also ELF format.
   The  devsys  will  make ELF executables if any of the incoming objects
   are  ELF. Any COFF files are converted to ELF format in passing but in
   the process symbol and debug information is removed from the resulting
   executable.
   All  COFF  objects -> COFF executable with symbol info All ELF objects
   ->  ELF  executable  with  symbol  info  Mixed ELF/COFF objects -> ELF
   executable - symbol info stripped.
   hops@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How can I build XENIX or DOS binaries on my OpenServer system?
   By  purchasing  the  "Xenix/DOS Cross Development Supplement". The SCO
   part number for the media and license is SA575-UX72-5.0.
   This  gives  you  the Microsoft based tools that comprised the earlier
   development systems repackaged to work on OpenServer.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Can I generate binaries that run on older sysem on OpenServer?
   Yes,  if  you  constrain yourself to use only features that existed in
   the  older versions. For example, you can't use mmap(S) (A feature new
   in  OpenServer)  and  expect  it to work on older versions. You should
   also read the man page for cc(CP) for related issues.

   There  are  some  bugs in the handling of POSIX terminal handling that
   affect this ability. #FIXME# more details.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Will ELF binaries compiled on OpenServer run on anything else?
   If  compiled  with  the  "UnixWare/OpenServer  Development Kit" (UDK),
   binaries  can run on any current SCO operating system. These tools can
   be  hosted on OpenServer, UnixWare 2, or UnixWare 7. Binaries compiled
   with  those tools that use no non-conforming facilities can run on any
   of these systems.
   Linux  and  the  BSD  familes  can  run  many  OpenServer and UnixWare
   binaries via their ibcs2 support.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Link errors on functions like gethostbyaddr, gethostbyname
   For  the unresolved functions, do a 'man functionname'. For example, a
   'man gethostbyaddr' shows
  gethostbyname(SLIB)
  *******************

  ____________________________________________________________________________
  gethostbyname, gethostbyaddr, sethostent, endhostent, herror, hstrerror --
  get network host entry

  gethostbyname- get network host entry by name

  gethostbyaddr- get network host entry by address

   [ ... ]
  Syntax
  ======

  cc . . . -lsocket

  #include  <netdb.h>

   This  man  page  tells us that we must #include <netdb.h> before using
   these  functions  and  that  we  must  be  sure that our cc line links
   against the socket library by having a '-lsocket' at the end.

   This  same technique should be applied to any link error that you feel
   the system really does know about but you just don't know where it is.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How do I read or traverse directories within a program?
   ftw(S)  will  traverse  and recurse a path, calling a function of your
   creation on each object found.

   If  you  just  want  to open a directory and read it, you must use the
   functions described in directory(S) such as opendir(S) and readdir(S).
   In OpenServer, you can no longer read directories like a file.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How can I detect null references in my program?
   On  OpenServer,  there  are two kernel global variables of interest in
   /etc/conf/pack.d/kernel/space.c that may be set.

   If  notice_null_refs  is  non-zero, a kernel message will be generated
   when  a  program attempts to reference the page with a virtual address
   of zero.

   If  signal_null_refs  is  non-zero,  the  kernel will detect zero page
   references  and deliver a signal to the process, killing it and likely
   leaving a core dump for analysis.

   TLS594,  available  at  ftp://ftp.sco.com/TLS  allows finer control of
   these actions.

   robertlipe@usa.net
   On UnixWare 7, the 'nullptr' command can enable, disable, or trap null
   pointer  references  on  a  per-uid  basis.  On UW7 before 7.1.0, many
   system  utilities (vi, more, pg) become unstable if nullptr disable is
   ineffect.
   robertlipe@usa.net
   With UW7.1, the MALLOC_CHECKS environment variable can be set to cause
   page   zero  to  be  unreadable.  See  malloc(3C).  This  works  on  a
   per-process  basis.  Note  that  since page zero must first be read to
   turn   off   access,   when  "nullptr  disable"  has  been  set,  this
   MALLOC_CHECKS  setting  will cause a process to die when it first gets
   into malloc() code.
   dfp@sco.com
   Beginning  with  UnixWare  7.1.3  see also memtool(1) for dealing with
   null pointers and related memory bug checks.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Where is alloca()?
   Add -lPW to your link line to get alloca()
   robertlipe@usa.net
   Note that for UDK C++, alloca() is not supported.

   (This  is  because  it  is  incompatible  with  an efficient exception
   handling  implementation.  Note  that  better alternatives to alloca()
   exist  in  C++, such as the vector class in the draft standard library
   or the Block class in UDK Standard Components.)
   jls@sco.com
If you really need an alloca() to build something and are willing to
live with the above and can't find one anywhere else
many of the gnu software sources include one.

bash-1.14.6/lib/malloc/alloca.c
bash-1.14.6/lib/malloclib/alloca.c
bash-2.0/lib/malloc/alloca.c
diff-2.6/alloca.c
diffutils-2.7/alloca.c
fileutils-3.16/lib/alloca.o
find-3.6/lib/alloca.c
findutils-4.1/lib/alloca.c
gawk/gawk-3.0.3/alloca.c
make-3.75/alloca
readline/alloca.c
sed-2.05/alloca.c
tar-1.12/lib/alloca.c

   hops@sco.com
Heres an asm version (from lxrun)
alloca.s
        .text
        .globl  alloca
        .align  4
alloca:
        popl    %edx            / return address
        popl    %eax            / nbytes
        movl    %esp,%ecx
        subl    %eax,%esp       / calculate new esp
        andl    $-4,%esp        / make sure stack is 4 byte aligned
        movl    %esp,%eax       / return pointer to new memory in eax
        pushl   8(%ecx)         / copy saved registers
        pushl   4(%ecx)
        pushl   0(%ecx)
        pushl   %ecx            / we need to push a fake argument here
                                / since alloca's caller will attempt to
                                / clean up the stack

        jmp     *%edx           / return

It'll build on Osr5 and UW7 with a simple Makefile rule referring to
alloca.o

   hops@sco.com
   In the UDK and in UW7, there is an intrinsic version of alloca() built
   into the compiler. It is enabled via -Kalloca.
   dfp@sco.com
   The  UDK  C++ compiler does now support -Kalloca as well. I think this
   change was made as of UW 7.1.0 or thereabouts.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Purify or other malloc checkers.
On Jan 19, 1996, Larry Phelps said:

I know of two such products for SCO Unix these:

    Insure++:
        Parasoft Corporation
        2031 South Myrtle Avenue
        Monrovia, CA 91016
        Phone: (818) 305-0041
        Fax:   (818) 305-9048
        Email: insure@parasoft.com
        HTTP:  http://www.parasoft.com

    Sentinel:
        AIB Software Corporation
        1145 Herndon Parkway
        Herndon, Virginia 22070
        Phone: (703) 787-7700
        Fax:   (703) 787-7720
        Email: info@aib.com
        HTTP:  http://www.aib.com

   robertlipe@usa.net
   checkergcc exists for linux. Could probably be ported to SCO systems.
   robertlipe@usa.net
   For  C++,  the  UnixWare  2.x and UDK Standard Components has a memory
   checking  tool  called  'fs'.  It's  not as powerful or transparent as
   commercial tools such as Purify, but it's better than nothing.

   jls@sco.com
   On   UnixWare   7   and  on  UDK,  the  standard  malloc  library  has
   instrumentation  that  can  be  turned  on  at  runtime. If you export
   MALLOC_CHECKS,  you  can  control  the tests that are performed on the
   heap.
   UnixWare 7.1.0 has even more instrumentation and can deliver a SIGSEGV
   (conveniently  trapping  you  into  a  debugger) at the bus cycle that
   delivers the bounds exception.
   robertlipe@usa.net
   Electric  Fence  from  Bruce  Parens  works just fine on OpenServer. I
   don't  really  know  that  it  offers anything above the MALLOC_CHECKS
   tests in the system libraries.
   robertlipe@usa.net
   dmalloc (www.dmalloc.com) works fine with OSR5.
   john@kuwait.net
   Beginning  with UnixWare 7.1.3 there is the "memtool" tool, which does
   a  lot  of  the memory error detection work that commercial tools like
   Purify do. See http://uw713doc.sco.com/en/man/html.1/memtool.1.html or
   the memtool(1) man page on your system.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How can I read kernel data through /dev/kmem in a user program?
   This   can   be   a  powerful  technique,  but  it  is  also  horribly
   non-portable.  Kernel  data  structures  can  and  do  change  between
   releases, so your program may break.

   The  basic  idea  is to call nlist(S) with the table of kernel symbols
   you  wish  to  examine. nlist will then fill in the addresses of those
   symbols.  You  can  then open /dev/kmem, use the addresses to lseek(),
   then  issue a read(). On systems that have mmap() available, this is a
   good use for it.

   You  can  look at the sources of programs like u386mon for examples of
   how to do this.
   An  OpenServer-specific  extension is the tab(HW) driver. See that man
   page and string(HW), and look in /dev/table and /dev/string to see how
   it works. This only works for a small fixed subset of kernel data.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How to detect SCO product or version at compile time?
   Ordinarily,  this is a bad idea. Rather than basing your code on "am I
   on  OpenServer or not?", you're typically more interested in, say, "do
   I  have mmap(S) or not?" Programs like GNU autoconf provide a powerful
   way to test for features.

   The   SCO   provided   compilers   and   the   GCC's  that  are  truly
   OpenServer-aware  all  provide a manifest "_SCO_DS" that is set to one
   when targeting SCO OpenServer.

   robertlipe@usa.net
That having been said heres some code that attempts to detect the various SCO
platforms upto and including Gemini - It will probably report UDK on
Osr5 and UW as Gemini I.

#include <stdio.h>

main()
{
#if defined(_SCO_DS)
   printf("OpenServer\n");
#elif defined(__UNIXWARE__)
   printf("UnixWare gcc\n");
#elif defined(__USLC__)
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ == 199409
   printf("Gemini I cc\n");
#else
   printf("UnixWare cc\n");
#endif
#elif defined(M_UNIX)
   printf("ODT 3 or earlier\n");
#else
   printf("Other platform\n");
#endif
}

   hops@sco.com
Heres a slight update that understands UW7 CC

#include <stdio.h>

main()
{
#if defined(_SCO_DS)
   printf("OpenServer\n");
#elif defined(__UNIXWARE__)
   printf("UnixWare gcc\n");
#elif defined(__USLC__)
# if defined( __STDC_VERSION__ ) && __STDC_VERSION__ == 199409
   printf("Gemini I cc (UW7 and UDK)\n");
# else
#    if defined(__SCO_VERSION__)
   printf("Gemini I CC (UW7 and UDK)\n");
#    else
   printf("UnixWare cc\n");
#    endif  /* SCO_VERSION */
# endif     /* STDC_VERSION */
#elif defined(M_UNIX)
   printf("ODT 3 or earlier\n");
#else
   printf("Other platform\n");
#endif


/*  uw7 ccs */
#if defined(__SCO_VERSION__)
   printf("__SCO_VERSION__ is %ld\n", __SCO_VERSION__);
#endif

}

   hops@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How to write dialers
   look at ecu, XC
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   POSIX Timers
   mkdev suds.

   They are buggy. Many TAs available on this subject.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How do I play nice with UUCP locking?
   /usr/spool/uucp/LCK.ttyxx, suid uucp, look at xc, ecu, others. Include
   url.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   SCO CC and foo.cc
Some earlier SCO C++ compilers do not accept some commonly used C++ source
file suffixes, such as .cc.  In this case the solution is to give the option

        CC +.cc ...

Note that more recent OpenServer CC commands do accept .cc and other common
suffixes, as do the UnixWare 2.x and UDK CC commands.

   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Which C compiler delivers the best performance?
   There  are  at  least four popular compilers on SCO OpenServer and two
   for UnixWare.

   1)  /bin/cc  is based on the USL cc, not the Microsoft cc that shipped
   with earlier SCO products. This is actually a respectable compiler. It
   generates  very  good  code,  has  a reliable optimizer, and is pretty
   quick  and  solid. You can control optimizations with the -O flags and
   can fine tune the optimizations with the -K options.

   2)  icc  ships  with  the  SCO  DS and is based on the Intel Reference
   Compiler.  This  compiler  can  generate  amazing  code  and very good
   warnings  and  diagnostics  about your source. It can generate Pentium
   Pro   specific   optimizations.   The  price  you  pay  for  all  this
   optimization is high in terms of compile time. It can be slow to build
   your program.

   3)  gcc is part of the GNU ds. It generates code that is comparable to
   the  quality  of  the /bin/cc output. The warnings and diagnostics are
   good. Optimizations can be controlled via the -O, -m, and -f flags.

   4)   UDK   compiler.  See  the  below  for  more  information  on  the
   developement kits available for SCO OS's.

   http://www.sco.com/developers/products/devkits.html

   All  three  compilers are ANSI C by default, with options to fall back
   to K&R.

   If  you're  looking for a "magic bullet" from the compiler to speed up
   your  program  by an order of magnitude, just by using a different one
   or by wiggling some compiler switches, don't. Only after you've highly
   tuned  your  algorithms and implementation should you even worry about
   compiler  performance.  Even  then, you should be prepared to stare at
   the  compiler output and run extensive tests before making an informed
   decision.

   robertlipe@usa.net, gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   POSIX  threads or threads for Unixware and/or OpenServer 5.0.X and ODT
   3.0?
   Unixware  has  UI  (UNIX  International)  threads.  UnixWare 7.0.1 and
   higher support POSIX (P1003.1c) threads.

   OpenServer  5.0.X  has DCE threads which can be purchased in the US at
   800-SCO-UNIX  or any authorized SCO UNIX reseller/dealer. This is very
   expensive.

   There  are  two  possible  GPL  treads  options  available.  Both were
   orginally   submitted   by   ARTURO  MONTES  <mitosys@colomsat.net.co>
   Thanks!!   There  is  a  pthreads  package  on  Skunkware  97.  Custom
   installable media images for the OpenServer pthreads Skunkware package
   are at :

   http://www.sco.com/skunkware/osr5/libraries/pthreads/VOLS.tar

   This  is  proven's  1.60 Beta 5 Posix threads implementation ported to
   SCO OpenSever 5.0.X!

   The second is FSU threads.

   http://moss.csc.ncsu.edu/~mueller/pthreads/

   A modified to work with OpenServer is available at

   ftp://www.zenez.com/pub/zenez/prgms/threads.tar.gz

   You need to use GDS in Skunkware 95 (95q4c). This is necessary because
   GNU gcc 2.7.2 in Skunkware 97 hasn't GNU as.
   Currently there is an alpha version of mysql working with FSU threads.
   Tests are currently ongoing.

   FSU Threads and Open Server 3.0 or Open Desktop 3.0
   FSU  pthreads  can  be  compiled with SCO 4.2!! Use a good port of GCC
   2.5.X
   gerberb@zenez.com, robertlipe@usa.net
   OpenServer  5.0.7  mp3/up3/supp3  has  a  UDK  libthread.so.1  threads
   library. This can be used to write threaded applications using the UDK
   development tools. It contains both POSIX and UI API interfaces.

   This is still a user-space threads library (because OSR5 has no kernel
   threads);  it  is  a  version of the UnixWare 7 libthread, modified to
   operate  under  the  assumption  that  the number of available LWPs is
   always one (which is the case with no kernel threads).

   Thus,  you  will  see  no  performance benefit from using this threads
   library  on  MP  systems.  However, it does have better asynch I/O and
   libc  synchronization than other OSR5 third-party user-space libraries
   (FSU,  Pth)  and  so is recommended for use in UDK-based applications.
   The Java 1.4.2 implementation on OSR5 mp3/up3/supp3 also uses this new
   UDK libthread.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Where to get STL for SCO C++?
   Here's the modern answer. Beginning with the UDK 7.1.1b release in Nov
   2000,  a  full and high-quality implementation the entire C++ Standard
   Library,  including  all of STL, has been available as part of the SCO
   UDK  product for both UnixWare 7 and OpenServer 5. There is no need to
   look anywhere else for STL.

   The  sections that follow are for historical interest only, or perhaps
   for people on very old versions of OSR5 or UW7.
   jls@sco.com
   Here's  the  short  answer.  STL is not part of the UDK yet, but we're
   working on it. In the meantime, use the good freeware STL from Silicon
   Graphics. A packaged version of SGI STL 3.11, adapted for use with the
   UDK C++ compiler, is on Skunkware at
   http://www.sco.com/skunkware/devtools/index.htm#stl    .    See    the
   README.SCO inside there for a description of how to use it.
   jls@sco.com
Here's the long answer.

There are four commercial sources for the Standard Template Library:
     Modena,      ( modena@netcom.com )
     Rogue Wave   ( http://www.roguewave.com ),
     Dinkumware   ( http://www.dinkumware.com )
 and
     ObjectSpace  (http://www.objectspace.com/toolkits/ ).

These vendors generally sell the STL either on an OEM basis to compiler vendors
,
or as part of large site licenses. In other words, it's hard to get a single
user license, especially for SCO platforms.

There is also an up-to-date, public domain version of STL:

     Silicon Graphics  ( http://www.sgi.com/Technology/STL )

This is the best bet for using on SCO platforms. We have a packaged version
of it for UDK C++; see the "short answer" above.

Note: As of July 1997, the ObjectSpace STL is now also available free for
commercial use. However the ObjectSpace download page only offers it in package
d
form and for only a few platforms. The Solaris 2.5 and Windows 95 versions have
been downloaded and unpacked but they are tailored for the compilers on those
platforms and efforts to build them show that it would be a lot of work to get
them to compile with the UDK C++ compiler (partly because every C++ compiler
supports different new features right now, and partly because the
auto-configuration tool they use is not included in these distributions).
I can't unpack their MIPS/Irix version, which is the only one compiled
against an EDG-based compiler, because their install tool is an executable
program.  ObjectSpace has told me in e-mail that they have no plans to
distribute a source code only, configuration-tool-included version of their
STL, so I can't be too hopeful of making use of it on SCO platforms

In addition, versions 2.6.2 and later of libg++ (the GNU C++ library) include a
t
least a part of the STL that works with GNU C++. However as of egcs libg++
has been trashed and has been replaced by the SGI version.

There is also the original public domain version from Hewlett-Packard that is
still available, but it is inferior to the current one from SGI, from which it
is based. (Alex Stepanov, the inventor of STL, now works for SGI.)



OpenServer and UnixWare 2.x C++

The native OpenServer 5.0 C++ compiler is Cfront-based, and thus will have an
impossible time compiling most STLs. At one time, ObjectSpace said that their
STL had been specially modified to compile with Cfront, in which case OSR5 C++
should work. Don't know if this is still the case.

We have not recently tested any of the STLs against the native UnixWare 2.0 or
2.1 C++
compilers. At one time they all could build, but the STL code may now be assumi
ng more
advanced compiler features.

In both cases, you're *much* better off moving to the UDK, because it supports
many more of
the advanced template features that STL relies upon and takes advantage of.

   robertlipe@usa.net, hops@sco.com, jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Software  packaging  and distribution options for OpenServer & earlier
   releases
   My  advice,  at  this  point, is "just say no" to CDMT. The CDMT tools
   generate  a  format known as SSO's that can only be read by OpenServer
   that is an evolutionary dead end. They're not going to be supported in
   UnixWare  7,  and  they're  not  supported by the OS versions prior to
   OpenServer.  Walk  away  while you can. I would be remiss to not point
   out  the  widespread public opinion that SSO's, custom+, cdmt, and the
   rest  of  this  way  of  life are, uh, not going to win any popularity
   contests.

   There  is a TLS on ftp://ftp.sco.com/TLS/tls602.ltr that contains some
   more information on how to make SSOs if you insist.

   There  is  a TLS on ftp://ftp.sco.com/TLS/tls036.ltr that contains the
   Software  Mastering Toolkit (SMT) that lets you build "classic custom"
   volumes that will install on any SCO Unix release.

   robertlipe@usa.net, steved@ussinc.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Issues if you develop on 5.0.4 and run on earlier OpenServer
   Bela Lubkin, in the newsgroup, wrote:

   The  OpenServer  5.0.4  development  system  adds a few function calls
   which  were  absent  in  5.0.0  and 5.0.2. Most of these were actually
   intended to be in 5.0.0, but weren't ready in time. Kernel support for
   all of them is already present in 5.0.0, so programs compiled in 5.0.4
   would  work  on  5.0.0, except that there are potential shared library
   issues.

   Of  the  new functions in 5.0.4, only four of them represent new entry
   points  in  the  shared  libraries.  These  are  fattach(), fdetach(),
   makecontext(),  and mkstemp(). As long as you don't call any of those,
   I  can  think  of no reason that your programs compiled on 5.0.4 would
   not work on 5.0.0/5.0.2.

   If  you *do* call any of those functions, your programs will only work
   if  you  avoid  calling  the  dynamic  shared  object  versions of the
   functions. There are three ways to do so:

   1. Compile COFF binaries (the default compilation mode). Advantages:
   if you stick to the right subset of system calls, COFF binaries
   will work on SCO Unix 3.2v4.2 and earlier; also, statically links
   in functions which will work on 5.0.0/5.0.2 kernels, but which are
   not in the shared objects on those systems. Disadvantage: binaries
   much larger.

   2. Compile static ELF binaries (`cc -belf -dn`). Advantage:
   statically links in functions which will work on 5.0.0/5.0.2
   kernels, but which are not in the shared objects on those systems.
   Disadvantage: binaries much larger.

   3. Compile dynamic ELF binaries (`cc -belf`), but statically link in
   those functions. Technique:

   $ mkdir /tmp/newlib
   $ cd /tmp/newlib
   $ ar xv /usr/lib/libc.a fattach.o fdetach.o makectxt.o mktemp.o
   $ ar rv libstatic-stuff.a *.o
   $ mv libstatic-stuff.a /local/lib
   ...
   $ cc -belf foo.o bar.o -L/local/lib -lstatic-stuff -o foo

   Advantage: preserves binary size advantage (and cross-OS-
   compatibility) of dynamic ELF, while avoiding symbols that won't
   resolve on 5.0.0/5.0.2. Disadvantage: more effort.

   >Bela<

   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Issues when compiling on OpenServer, executing on 3.2v4 or earlier
This contribution is a conversation between Samuel Liddicott
sam@campbellsci.co.uk and Bela Lubkin belal@sco.com

 Sam>> Am I right in understaning from your message that a program might
 Sam>> conceivably compile to COFF and fail to run on 3.2v4.2? Even if its all
 Sam>> staticly linked (however you do it [I'm a delphi man]). If so then
 Sam>> I need lot of thought.

 Bela> Your understanding is correct.

 Bela> System calls are made by calling a generic kernel entry point with a
 Bela> system call number in a register.  Newer system call numbers will be
 Bela> rejected by the old kernel.  There is no compile-time protection against
 Bela> this.  If a program calls one of the newer system call numbers on an
 Bela> older kernel, it will get a signal (SIGSYS) and die, unless it's
 Bela> arranged to trap or ignore that signal.

 Bela> [about readv/writev]: the main place it's likely to matter is in network
 Bela> programs.  writev, in particular, helps ensure that data is sent as a
 Bela> single network packet instead of many smaller ones.  Could be a serious
 Bela> performance issue if the program thinks it's using a real writev and
 Bela> tries to take advantage of it.  A well-written program will probably
 Bela> have something like:

 Bela>   #ifdef HAVE_WRITEV
 Bela>   ... code that uses writev
 Bela>   #else
 Bela>   ... code that constructs a buffer and calls write() once
 Bela>   #endif

 Bela> So it would be better if they didn't find writev() at all.  But other
 Bela> programs may not have such ifdefs, or they may be using writev just for
 Bela> convenience and wouldn't be harmed by a multi-write implementation.
 Sam>> As far as fattach or fdir go, if a program "CAN" be compiled for 3.2v4.2
 is
 Sam>> it then presumed that there are compiled time #def's to stop it trying t
o
 Sam>> use those functions? Which I just set (perhaps by hand if a configure
 Sam>> script got it wrong?)

 Bela> No, that's the whole point of this discussion.  You can freely call
 Bela> these things and nothing will stop you, except the program will fall on
 Bela> its face on 3.2v4.2.

 Sam>> Otherwise, presumably I just wait for the errors to come up at compile
 Sam>> time, and see why, look for any compile time flags to choose the right
 Sam>> version, if not plug in my own and send in a patch?
 Sam>> Finally, have I missed any gotchas, in which it might seem to work, but
 Sam>> fail? [Presume I have done what you said and compiled a library that has
n't
 Sam>> IDEA: What can I do with the "best no-devsys devsys" as found in
 Sam>> kuso.shef.ac.uk? Maybe IT has the right libraries, which might WORK and
 Sam>> STOP a configure script detecting these dodgy calls?

 Bela> The SCO XENIX/DOS Cross Development Supplement will
 Bela> work in that respect.  It provides a compilation environment which uses
 Bela> its own libraries, which have none of the new functions.  Essentially
 Bela> the ODT 3.0 libraries, though perhaps some bugs were fixed.

 Bela> Meanwhile, as I said, here is a script which implements some form of
 Bela> back-portability ftp://ftp.armory.com/~filbo/makelibv42.

   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   C++: Using STL in a library and I get link errors from it - Now what?
I'm building a static library and the link errors seem to reference things
from the STL that were used in the library - what gives ?

One possibility is that the necessary instantiations weren't done when
you formed your library.  Try using the "CC -Tprelink_objects" command on
the .o's that go into the library, before doing the "ar" step that forms
its archive.  Like this:

        CC -c a.C b.C c.C
        CC -Tprelink_objects a.o b.o c.o
        ar rv libfoo.a a.o b.o c.o

I can't be sure this will solve your problem but it's the first thing
to try.

Diagnostics coming out of STL are legendary for being hard to understand ...


   hops@sco.com
   The  above  CC  -Tprelink_objects  step  is  generally  necessary when
   preparing an archive that contains internal template instantiations.
   There is a known problem in doing this. If multiple archives are being
   linked  against,  it  is  quite  possible  that  you will get multiple
   definition errors coming from common template instantiations occurring
   in  multiple .o files. We are currently working on a solution for this
   problem  in  our  next  release.  For work-arounds, you either have to
   restructure  your  source  files, or build with CC -Tlocal (which will
   blow up object sizes significantly).
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   C++:  I'm  building  C++  source with the UDK and I get warnings about
   'omission of explicit type is nonstandard ("int" assumed)'
The error is that "implicit int" is no longer allowed in C++.

Assuming you don't want to fix up the source, but just want to get rid
of the diagnostics, here is a technique to suppress the warning messages :

        1) Get the compiler to tell you what the error numbers are when
                diagnostics are displayed using
                -Wf,--display_error_number

                        CC -c -Wf,--display_error_number whatever.C

        2) Modify the build with switches to suppress that diagnostic.

-Wf,--diag_suppress -Wf,838

                        CC -c -Wf,--diag_suppress -Wf,838 -c whatever.C

e.g.
CC -c -Wf,--display_error_number w.C
"w.C", line 1: warning #838-D: omission of explicit type is nonstandard ("int"
assumed)
CC -c -Wf,--diag_suppress -Wf,838 -c w.C

   hops@sco.com
   As  of  the  UW  7.1  UDK,  this  general  technique  for  selectively
   suppressing warning messages is documented in the CC man page.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Where to get ANSI/ISO C++ standard library for SCO?
   As  of  the  UDK  7.1.1b  release  in  Nov  2000,  a full high-quality
   threads-safe  supported  version  of  the entire ANSI/ISO C++ Standard
   Library is available as part of the UDK development kit for UnixWare 7
   and OpenServer 5. There is no need to look anywhere else.

   The  entries  below  are  for historical interest only or possibly for
   people using really old versions of UW7 or OSR5.
   jls@sco.com
The UDK C++ compiler does not yet contain a full implementation of
the draft ANSI/ISO C++ Standard library.  In addition to the
Standard Template Library (STL), which is covered by a separate
FAQ entry, the new standard library includes:

   * language support and diagnostic classes
   * new, templatized versions of the iostreams and complex classes that
     were in the old de facto AT&T standard library
   * a number of new facilities, such as strings, locales, and valarrays
     (for Fortran-wannabe numeric computation).

The current SCO UDK C++ fully implements the language support and diagnostic
classes (clauses 18 and 19 of the draft standard).

The current SCO UDK C++ does not implement the new standard versions of the
iostreams and complex classes, but rather still contains the old
non-templatized versions, slightly updated for new types such as bool.

The current SCO UDK C++ does not implement any of the new facilities.

Three commercial STL vendors -- Modena, Rogue Wave, and Dinkumware -- also
market full standard library implementations, but on an OEM or large site
basis, that is generally not available for SCO platforms.

There are free implementations of the following parts of the library.
(If these links get out of date, try consulting the comp.std.c++ FAQ at
http://reality.sgi.com/employees/austern_mti/std-c++/faq.html#C6
for where to get them from.)

string

A partial implementation of the string class is available that Modena wrote;
it is at http://aw.com/cp/musser-saini-source.html .

The file bstring.h in it needs one change to compile under UDK C++: change
the #ifndef __BOOL_DEFINED on line 36 to

     #ifndef _BOOL

The ObjectSpace free STL distribution also includes a string implementation,
but building it has the same problems as building their STL (see above).

valarray

A partial implementation of valarray is available that Daveed Vandevoorde
wrote; it is at ftp://ftp.cs.rpi.edu/pub/vandevod/Valarray . The Rel2_0Beta2
version there needs one change to compile with the UDK C++ compiler: add the
lines

     #ifdef __USLC__         /* SCO UDK C++ */
     #   define COMPILER_RECOGNIZED
     #endif

at line 43 of file valplat.h.

   jls@sco.com
   EGCS,   the   Enhanced   GNU   Compilation  System  includes  the  SGI
   implementation  of STL and the necessary modifications to make it work
   with EGCS.
   EGCS is available at http://egcs.cygnus.com.
   robertlipe@usa.net
   The  SGI  STL  3.11 is now available for UDK C++ platforms in packaged
   form  on  Skunkware,  with  modifications  made  that are necessary to
   compile under UDK C++.
   In  addition  to  STL,  this  contains  implementations of the string,
   bitset, and auto_ptr classes from the ANSI/ISO C++ standard library.
   To  get it, go to http://www.sco.com/skunkware/devtools/index.html#stl
   .


   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   My existing C++ code doesn't compile under UDK C++!
   There  are  a  number  of  source and binary compatibility issues that
   arise  when  moving  applications built with SCO OpenServer C++ or SCO
   UnixWare 2.x C++ to the new SCO UDK C++ compiler.

   These  are discussed in a white paper published in SCO CoreDump Volume
   6, located at http://www.sco.com/developer/core6/c++.htm .

   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Recommended books on UNIX internals
   Most text from Bela Lubkin (belal@sco.com)

   There are many excellent Unix internals books. Look for:

   John Lions, " Lions' Commentary on Unix 6th Edition with Source Code",
   Peer  to  Peer Communications, 1996 ISBN 1-57398-013-7. This title was
   long-suppressed  by  AT&T  until SCO bought the rights to System V and
   therefore  became  the  copyright  owner of Sixth Edition as well, and
   allowed it to be published. More info is at
   http://www.peer-to-peer.com/catalog/opsrc/lions.html.

   Maurice  J.  Bach, "The Design of the UNIX Operating System", Prentice
   Hall  1986.  ISBN  0-13-201799-7.  Based on SVR3.0, but still sets the
   standards for the books on SVR4.0 and BSD. Often used as a textbook.

   Steve   Pate,  "Unix  Internals:  a  Practical  Approach"  Covers  SCO
   OpenServer Release 5 internals.

   Berny  Goodheart  &  James  Cox,  "The  Magic  Garden  Explained:  The
   internals  of  UNIX  SystemV  Release  4.0",  Prentice Hall, 1994 ISBN
   0-13-098138-9.  Builds  on  the  Bach book but contains information on
   vnodes, unified VM system, and other things new to SVR4.

   Leffler,  McKusick, Karels, Quarterman, "The Design and Implementation
   of  the  4.3BSD  UNIX  Operating  System",  Addison Wesley, 1990, ISBN
   0-201-06196-1.  This  is  the famed "Devil Book", named after the cute
   little  demon on the cover named "Chuck". It is to 4.3BSD what Bach is
   to SVR3.

   McKusick,  Bostic,  Karels, Quarterman, "The Design and Implementation
   of   the   4.4BSD   Operating  System",  Addison  Wesley,  1996,  ISBN
   0-201-54979-4.  An  updated version of the above. Reflects innovations
   in 4.4BSD.

   Uresh  Vahalia,  "UNIX  Internals:  The New Frontiers", Prentice Hall,
   1996,  ISBN 0-13-101908-2. Covers many of the new strains of UNIX that
   are  unique including SVR4.2, Solaris, Digital UNIX, 4.4BSD, and Mach.
   Topics  include  kernel  multithreading,  multiprocessor  and realtime
   systems, journaling filesystem, and modern memory management.

   [Append to This Answer]
   (Category)  (Category)  SCO comp.unix.sco.programmer FAQ. : (Category)
   SCO Development Environments. :
   Using FSU Pthreads on SCO systems
   Issues and answers for people using FSU Pthreads on SCO Systems
   Most of these come from the maintainer of FSU Pthreads for OpenServer,
   ARTURO MONTES.
   robertlipe@usa.net
   Subcategories:
   Answers in this category:
   (Answer) Are SCO development libraries reentrant in FSU pthreads?
   (Answer)  Using  FSU  pthreads  my  memory  grows  and  grows. What is
   happening?
   (Answer) Can I use FSU pthreads as a shared library?
   (Answer) Which system calls are FSU pthread aware?
   (Answer) How can I build FSU pthreads on my OpenServer system?
   (Answer) FSU threads 3.14 can be download on ftp.zenez.com
   [New Answer in "Using FSU Pthreads on SCO systems"]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development  Environments.  :  (Category)  Using  FSU  Pthreads on SCO
   systems :
   Are SCO development libraries reentrant in FSU pthreads?
   The  answer  is  almost YES, if SCO claims that its libraries function
   are  reentrant  they must be reentrant with FSU pthreads. FSU pthreads
   on OpenServer tries to use the SCO scheme to make reentrant library.
   ARTURO MONTES
   robertlipe@usa.net
   Can anyone clarify this answer? I can't parse it.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development  Environments.  :  (Category)  Using  FSU  Pthreads on SCO
   systems :
   Using FSU pthreads my memory grows and grows. What is happening?
   FSU  pthreads  use GNU malloc package. You must link your FSU pthreads
   software  with GNU malloc provided with FSU. In other way you will get
   the  previous  error.  Link  with libmalloc.a or with gmalloc.o in FSU
   pthreads.
   ARTURO MONTES
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development  Environments.  :  (Category)  Using  FSU  Pthreads on SCO
   systems :
   Can I use FSU pthreads as a shared library?
   Yes.  FSU  pthreads  come  in  two  flavors: static library and shared
   library.  However,  when  you  use FSU pthreads shared library must to
   take  care  of  the  library  order  in  the  command linker line. FSU
   pthreads  use  some  function  in socket library, but FSU make some of
   them  pthread  aware.  Use  always  -lgthreads -lsocket -lgthreads, to
   always use FSU pthreads socket reentrant functions.
   ARTURO MONTES
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development  Environments.  :  (Category)  Using  FSU  Pthreads on SCO
   systems :
   Which system calls are FSU pthread aware?
   They are: read, write, getmsg, connect, accept, select and wait system
   calls.
   ARTURO MONTES
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development  Environments.  :  (Category)  Using  FSU  Pthreads on SCO
   systems :
   How can I build FSU pthreads on my OpenServer system?
   Run ./configure in threads/src directory and select the SCO OpenServer
   option.  This  command  copies Makefile.SCO5 to Makefile. Run make and
   everything  is OK. To install in default /usr/include directory, login
   as root and cd to thread/src directory, run make install.
   ARTURO MONTES
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development  Environments.  :  (Category)  Using  FSU  Pthreads on SCO
   systems :
   FSU threads 3.14 can be download on ftp.zenez.com
   You can download it from ftp.zenez.com with the link below.

   ftp://ftp.zenez.com/pub/zenez/prgms/FSU-pthreads-3.14.tar.gz
   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   OLD GDS (as on Skunkware) vs. New GCC 2.95.X or GCC 3.0.X
   To find out what GCC and developer tools are available take a look at

   http://www.sco.com/developers/products/devkits.html

   The main GCC site is...

   http://gcc.gnu.org

   EGCS and GCC merged. SCO now has many Gnu binaries available.

   Skunkware is available at
   ftp://ftp2.sco.com/pub/

   The Below is for historical purposes.

   ---------------------OLD----------------------------------------------
   ------

   Now  that  GDS  looks like it's getting dusty, and there are shiny new
   releases on ftp://ftp2.caldera.com/pub .
   Please start using the newer GCC. GCC Advantages relative to GDS

   GCC contains newer optimizations and can generate hotter code for some
   input.

   GCC  is a much newer G++ base and much more closely reflects the state
   of a useful C++ implementation.
   This below is left for historical purposes.

   GDS as found on ftp://ftp2.caldera.com/pub/Skunk96
   It's  prebuilt  and  custom installable, so anyone can make it go with
   very little effort.

   It's  self-contained  and absolutely works well without the native DS.
   Assemblers,  debuggers, and all that stuff are all there and they just
   work.

   It  has  much air-time - it's on probably thousands of machines around
   the planet and robertl has almost a dozen postcards to prove it. :-)

   Disadvantages of GDS relative to either EGCS or GCC.

   It's  based  on  the  2.7-ish GCC which does have some problems on x86
   targets  with  higher  optimization  levels. However, many people have
   compiled  many  megabytes  of  code and never encountered any of these
   problems.

   It's  based  on the 2.7-ish GCC which means that it reflects the level
   of C++ that was implemented in GCC at that time. It certainly does not
   track the standards as they exist in '98 very well.

   It's  an  evolutionary dead end. This package works very well, but the
   better  road  to  take is to be sure that the newer packages all "just
   build"  from this one rather than trying to make more releases fo this
   one that track all the component revisions.

   Robert  Lipe,  the author of the OpenServer specific parts of GDS, was
   involved very heavily with the OpenServer specific parts of EGCS. EGCS
   is  available  at  http://gcc.gnu.com  and mirrors. Kean Johnston also
   joined  in the fun and together, they spent about a billion hours each
   hammering on this code. It, too, has good things and bad things.

   EGCS Advantages relative to GDS

   EGCS  contains  newer  optimizations  and can generate hotter code for
   some input.

   EGCS is a much newer G++ base and much more closely reflects the state
   of a useful C++ implementation in 1997.

   See also:

   http://gcc.gnu.org

   EGCS Disadvantages relative to GDS

   Not  currently  custom-installable.  Key members of the Skunkware team
   are believed to be working on it.

   Currently  requires the SCO assembler. No, getting clever and stealing
   the  assembler  out  of  the GDS will get you nowhere. 5.0.4 allegedly
   includes  the  assembler. 5.0.0 and 5.0.2 definitely do not. So if you
   don't have the SCO DS and you have 5.0.0 or 5.0.2, this is a problem.

   Non-trivial  resources  required  to  bootstrap  it.  It takes rjlhome
   (dual-processor  P100)  about  two hours and almost 200Mb to do a full
   'make bootstrap'.

   A    full   comparison   of   EGCS   vs.   GCC   can   be   found   at
   http://gcc.gnu.org/faq.html.  I  prefer  EGCS becuase it's a more open
   environment,  archives of the lists are on-line, and it is a much more
   integrated  package  -  all  the  C++  libraries  (as  well as g77 and
   objective-c)  are  there  and  tested  weekly  on dozens of targets. I
   really feel it's a better tested release.

   I  could  probably  come  up  with  more compelling reasons to further
   confuse  the  issue,  but  I think if I had to optimize the heuristics
   used,  it  would  be, "If you don't have the SCO DS, stay with the GDS
   right now." Given a choice between EGCS and GCC, I'd used EGCS.
   Ultimately, someone will take the time to make EGCS work well with the
   free  assemblers so that a binary distribution of EGCS would be useful
   for  the  5.0.0 and 5.0.2 users. I just haven't had the time to do it,
   but  I  can point someone with suitable motivation to a couple of docs
   I've written on the issues involved.
   robertlipe@usa.net, gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Building Shared libraries with GCC or SCO cc
[ Answer by Bela and Robertl ]

                  SCO cc            GDS               EGCS or GCC >= 2.8.0
              ==============  ===============   ==============================
      Make things to go into .so
              -belf -KPIC         -belf -fpic             -fpic

      Make a .so
              -belf -G            -belf -G                -G

      Use a .so
              -belf               -belf

Everything is identical between SCO's cc and GDS except the spelling
of the "generate position-independent code" option.

GCC 2.8.0 and EGCS 1.0 default to ELF, making the flag to emit ELF
unnecessary.



   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Will UnixWare 2.1 or 7.0 run ibcs/OpenServer binaries?
   The short answer is "yes".
   UnixWare  2.1.x  still has all of the iBCS compatibility support in it
   and  will  run  OpenServer  COFF  binaries. You will, however, have to
   avoid using any of the newer OpenServer features in your program since
   the   level   of  COFF  support  that  exists  in  UnixWare  2.1.x  is
   approximately equivalent to SCO ODT 3.0.

   UnixWare  7  product  has  a  much  higher level of compatibility with
   OpenServer and should be able to run pretty much any OpenServer binary
   (either  COFF  or  ELF),  except ones which rely on some very specific
   knowledge  of OpenServer (eg debuggers, file system repair utilities /
   defragmenters,  or  programs  which  interact  directly  with  the  C2
   security features and libprot)

   UnixWare  7  also comes with a development environment (the UDK) which
   enables  you  to build ELF binaries which will run on UnixWare 7 *and*
   on  UnixWare  2.1.x *and* OpenServer 5.x (in the latter two cases this
   requires  the  installation of a set of comaptibility libraries on the
   target platform, but these are provided and are freely available).

   For  future development work you may find that the UDK is the best way
   to  go since it gives you compatibility across all three platforms and
   access to the latest versions of the language tools (C, C++, Java) and
   debuggers etc.

   Answer by Michael Davidson in comp.unix.sco.programmer.
   robertlipe@usa.net
   Note  that  UnixWare  7.0.1  removed support for XENIX x.out binaries.
   These aren't ibcs or OpenServer binaries but are an older standard.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Building  GCC 2.8.0 on OpenServer results in alloca link failure early
   during the build.
   GCC  2.8.0  is a distraction. Use EGCS (http://egcs.cygnus.com) or GCC
   2.8.1.
   robertlipe@usa.net
   GCC  2.8.0  finally  shipped.  Yippie!  So  you  grabbed  it, saw that
   OpenServer  is  finally  a  supported target, did the configure, typed
   'make  bootstrap'  and  watched it die within seconds on the following
   error:

 cc   -DIN_GCC      -DHAVE_CONFIG_H  -o cccp cccp.o cexp.o prefix.o \
   version.o obstack.o ` case "cc " in "cc") echo "alloca.o" ;; esac `
 undefined                       first referenced
  symbol                             in file
 alloca                              cccp.o
 ld fatal: Symbol referencing errors. No output written to cccp
 gmake: *** [cccp] Error 13

   Bummer.

   There   is  one  solution  and  one  workaround.  The  problem  is  in
   config/i386/x-sco5.  Edit  the line that looks like it reads "CC = cc"
   and remove the trailing space after the last lowercase c. After you've
   done  this,  you'll need to rerun configure so that it can rebuild all
   the  Makefiles.  If  you  look  at  the  above  compilation  line more
   carefully  you  will  see  that  there  is  an extra space and that is
   resulting in alloca.o not being linked into the resulting executable.

   Alternately,  you  can  just  type "CC=/bin/cc make bootstrap" and not
   have to edit anything.
   A patch to cure this was submitted to the GCC team on the day that GCC
   2.8.0 was released.

   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   I installed GDS or GCC binary kit and nothing works.
   All   of   the   binary  distributions  for  GCC  on  OpenServer  have
   instructions  with them. Reading those instructions really is a pretty
   good idea. All these kits require the SCO-provided libraries, headers,
   and related tools.
   Citing    the    instructions    for    GDS    that   are   found   at
   ftp://ftp.zenez.com/pub/zenez/gcc/sco_ds.html :
   Invoke custom
    Select "Install New" option from the "Software" menu.

    Follow the prompts to steer custom toward the original media you used
    to install OpenServer 5.

    Select Application Development Libraries and Linker. Install it all.
    This will give you the libraries, headers, and man pages.

   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   When  I  run  gcc on osr5 I get "cc: installation problem, cannot exec
   `cpp': No such file or directory"
   You ( or more likely configure) are running gcc with -belf and the gcc
   version doesn't understand it. (gcc 2.7.2.3)

   change  the  Makefile  or configure script setup from -b elf to -m elf
   (or remove it altogether)
   The default is to use -m elf
   hops@sco.com, gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Building Perl5.005_03
   Perl  5.005_03  builds  cleanly  with OSR 5.0.5 cc. Make sure you have
   installed rs505a, oss497a, and oss499a.
   I  have  found  you  need ftp://ftp.zenez.com/pub/zenez/perl5/h2ph.PL.
   This file needs to be placed in the utils directory instead of the one
   there. Then do a perl h2ph.PL and copy the file to /usr/local/bin.

   I have found that this patch to Config.pm in
   /usr/local/lib/perl5/5.00503/i386-sco/Config.pm
   will  allow  a  person  to  build perl with SCO cc and then use gcc to
   build all the other modules. This is needed for MySQL. The SCO cc will
   not work with MySQL. The patch is at
   ftp://ftp.zenez.com/pub/zenez/perl5/Config.pm.patch .

   To  build  Perl5.005_03  on  UnixWare  7.1.0 you will need these files
   ftp://ftp.zenez.com/pub/zenez/perl5/Configure.patch-perl5.005_03   and
   ftp://ftp.zenez.com/pub/zenez/perl5/svr5.sh.   You  need  to  put  the
   svr5.sh file in the hints directory and run patch on Configure.
   patch < Configure.patch-perl5.005_03
   gerberb@zenez.com
   I  found  this  news  comment  on  the exct problem I am attempting to
   solve. However, the link to the patch is invalid
   ftp://ftp.zenez.com/pub/zenez/perl5/h2ph.PL
   Where else can I obtain this information?
   Please  note  temporarily  ftp.zenez.com  is  down.  I  have  had some
   financial problems. The important files are now on...
   ftp://ftp.lerctr.org/pub/zenez/     Thanks     to    Larry    Rosenman
   ler@lerctr.org
   fpm@flash.net, gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Build DBI with gcc after building perl5.005_03 with SCO cc
If you want to install DBI on OSR 5.0.5 and you built perl with cc
you need to edit the Makefile in DBI-xxx and each subdirectory.
OLD gcc or SCO cc                    New
CC = cc -belf (gcc -belf -fpic)      gcc
CCCDLFLAGS = -KPIC -W1,-Bexport      CCCDLFLAGS = -fpic
CCDLFAGS = -wl,-Bexport              CCDLFLAG =
LD = ld (gcc -belf -G -fpic)         LD = gcc -G -fpic
LDFLAGS = -L/usr/local/lib           LDFLAGS = -L/usr/local/lib
LD = ld (gcc -belf -G -fpic)         LD = gcc -G -fpic
OPTIMISE = Od                        OTIMISE = O1

OLD
CCCFLAGS = -belf -dy -w0 -U M_XENIX -DPERL_SCO5 -I/usr/local/include

NEW
CCCFLAGS = -U M_XENIX -DPERL_SCO5 -I/usr/local/include

This is because the Perl dynaloader will not load the `DBI' modules
if they were compiled with `icc' or `cc'.

You can find a patch for DBI-1.06 at
http://www.zenez.com/zenez/perl5/DBI.patch or
ftp://ftp.zenez.com/pub/zenez/perl5/DBI.patch

$ gunzip DBI-1.06.tar.gz
$ tar xvf DBI-1.06.tar
$ cd DBI-1.06
$ cp /from/download/location/DBI.patch .
$ perl Makefile.PL
$ patch < DBI.patch
$ make
$ make test
$ make install

   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   What's the UDK link order for building Motif programs?
-lXm -lXt -lXext -lX11 -lSM -lICE -lsocket -lnsl

   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Is UDK C++ thread safe?
   Yes. In particular:

   Assuming  you  compile  with  CC -Kthread, the generated code from the
   compiler  is  thread  safe.  This includes static local variables with
   dynamic  initialization  expressions,  which require special guards in
   this case.

   Assuming  you also link with CC -Kthread, the language support runtime
   routines  are  thread  safe.  This  means  that  things like exception
   handling,  new/delete,  and  static init/ctor/dtor processing all work
   correctly in the presence of threads.

   The  C++ Standard Library is also safe for multithreaded applications.
   This  means  that:  all  internal  data  structures in the library are
   protected against simultaneous access; simultaneous access to distinct
   containers  is  safe;  and  simultaneous  read-only access to a shared
   container  is  safe. Simultaneous access to a shared container with at
   least   one   thread  writing,  however,  must  be  protected  by  the
   application through the use of mutual exclusion primitives.

   The  older  pre-standard  iostreams  classes, and the old C++ Standard
   Components  classes, both of which are provided for compatibility with
   existing applications, are not thread-safe.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   On  osr5  when  I  dlopen  a  shared library I get "symbol unresolved"
   errors
Assuming no other problems and the symbols complained of
are from libc this is normally
due to the dll referring to symbols that are provided statically
in the linktime libc.so and not in the dynamic (runtime linked) libc.so.1.

This works fine for shared libraries that are implicitly loaded ( specified as
-l on link line) since the needed static symbols are loaded into the executable
.
If the dll is explicitly loaded (using dlload) and the symbols haven't been oth
erwise referenced in the executable it will fail to resolve the symbol and the
dlopen() call will fail with dlerror complaining about symbol resolution.

Such static symbols can be identified as symbols that occur in a nm dump of
/usr/lib/libc.so and that do not occur in one of /usr/lib/libc.so.1

Workarounds are to ensure that the static symbols are referenced in code in the
 executable that does the dlopen (in an uncalled dummy routine) or (better) to
pull the static objects from /usr/lib/libc.so and explicitly link them into
the dll when its generated.

This can be seen in building tcl and TclX. The normal builds work fine using th
eir own interpreters but if the tclX library is tcl loaded from the tcl
interpreter (tclsh) you get a symbol resolution error initially on
random (and if thats surmounted then getpriority and then _fsync).

heres some partial shell script that makes a tclx dll with the needed static sy
mbols

# pull .o's containing needed static symbols from libc.so and put in archive
FILELIST='random.o getpriority.o v3_fsync.o'
ar xv /usr/lib/libc.so $FILELIST
ar qv st_syms.a $FILELIST
rm -f $FILELIST

# make dll with static symbols included
cc -G -o libtclx8.1.so tclXbsearch..o    tclXchmod..o     tclXcmdInit..o \
        .... ( rest of .o's elided) ....
   tclXstring..o     tclXsocket..o    tclXunixCmds..o   tclXutil..o   \
        ./st_syms.a

   hops@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Often used or need Flags when using compilers
If you use OSR 5.0.5 cc/Robert Lipes old gcc or Egcs 1.0.X and gcc 2.95
you may need to edit the Makefile in top and each subdirectory.
SCO cc or OLD gcc                    New (Note it defaults to -melf)
CC = cc -belf (gcc -belf -fpic)      gcc
CCCDLFLAGS = -KPIC -W1,-Bexport      CCCDLFLAGS = -fpic
CCDLFAGS = -wl,-Bexport              CCDLFLAG =
LD = ld (gcc -belf -G -fpic)         LD = gcc -G -fpic
LDFLAGS = -L/usr/local/lib           LDFLAGS = -L/usr/local/lib
LD = ld (gcc -belf -G -fpic)         LD = gcc -G -fpic
OPTIMISE = Od                        OTIMISE = O1

OLD
CCCFLAGS = -belf -dy -w0 -U M_XENIX -DPERL_SCO5 -I/usr/local/include

NEW
CCCFLAGS = -U M_XENIX -DPERL_SCO5 -I/usr/local/include

   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   I  am having trouble building and running an application with gcc, but
   someone else is not.
   Support  Level Supplements (SLS) can make a difference in the build of
   gcc.  If  you are having problems and someone else is not find out the
   differences in the SLS installed.
   I  personally  recommend  installing all patches listed on the SCO ftp
   site.         ftp://ftp.sco.com/SLS/         or
   ftp://ftp.sco.com/SLS/
   After  you  have added all the patches you want, rebuild and recompile
   your applications.
   This has fixed some problems people were having.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Assembler overview; differences of "AT&T" vs. "Intel" syntax
There is no doc that I know of that describes the assembler syntax used
by the assemblers in the modern UNIX products.  Mostly, it's understood
via a combination of studying what the native compiler emits and UNIX
"folklore" about how UNIX assemblers have always worked.  The (sad)
state of affairs is that people that should be writing assembler code
just seem to be able to figure these things out.  No, I won't pretend
that's a good answer or one that we should be proud of.  Darwinism
shouldn't be justification for doc failures.

You can learn a lot about the assembler syntax by watching how the
compiler writes assemblers.   Start with a tiny program:

        int x;
        main()
        {
                x = 0x1234;
        }

Compile it with -S and then look at the resulting .s file.  This will
show you how to make symbols global, how to separate text and data,
how to represent constants, and those three of four other "gotta know"
things.


Now, to complete the earlier setup, we'll visit history.

When Intel or any other CPU vendor releases a family of processors,
they almost always have an assembler written for it.  The syntax for
that assembler is used the examples in their databooks and is therefore
a very handy thing to be able to read and possibly write.  Now the
Intel assembler syntax for IA32 (nee x86) isn't a very pretty thing,
but it was definitely the first kid on this block.  This is known as
"Intel assembler syntax" and is the syntax used by most X86 assemblers
including MASM last time I looked.

In the mid '80's AT&T decided to flirt with porting UNIX to those
286 and 386 thingies, but decided to contract out some of the work.
Assemblers are pretty boring, so that work went to either Microport
or Interactive Systems Corp as legend has it.  (These were the days
when both these companies were known as porting houses and not as
shrink-wrapped UNIX vendors.)  They saw the Intel syntax and gagged.  So
they created their own assembler that was similar to some existing UNIX
assembler - perhaps it was as much to simplify their port as it was out
of "purity" of the language.  This became known as "AT&T/386 assembler
syntax" and is the syntax used by all the UNIX assemblers for x86 that I
know of including the GNU assembler.

Other than being completely different, they're quite similar.  To move
'1' into 32 bit memory address x, one would use:

        movl $1, x              / AT&T syntax - move long, immed 1 -> x
                                / "word" = 16 bits, "long" = 32.
or
        move dword ptr x, $1    / Intel syntx.  dbl word ptnr x <- immed 1
                                / "word" = 16 bits, so "dword" = 32.


In AT&T syntax, the name of the opcode (movb, movw, movl) signfies
the width of the operands.  In Intel syntax, it's the funky qualifier
thingies in the middle that achieves the same.  There's also the minor
difference that the direction is backwards between the two.

So, if you find an Intel book on assembler syntax  it will do you some
good for an AT&T-based assembler but you have to read it in a mirror and
remember to always do conversions on every line you read.

   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   What popular compilers are available?
   The  OpenServer  Development  System  (a.k.a.  "the native development
   system"  or  "/bin/cc")  is  an  optional SCO product. It contains a C
   compiler and a Cfront based C++ compiler. (This means it won't compile
   modern  C++  code.)  It  provides  a  complete development environment
   (make, as, ld, headers, libraries, X11 dev, etc.) This is the kit that
   must  be  used  for  device  driver  development on OpenServer. It can
   generate ELF or COFF, defaulting to COFF.

   GCC   is   available   for  free  in  source  form  from  GNU  mirrors
   (http://egcs.cygnus.com)      or      in      binary     form     from
   http://www.sco.com/skunkware. It provides compilers for C, modern C++,
   Java,  Fortran 77, Objective C, and Chill. If you are using OpenServer
   and  don't  have the OpenServer Development System installed, you must
   be  sure  to install the Linkers and Libraries kit as described in the
   documentation  of  the  GCC  binary  kit.  On OpenServer, this kit can
   generate ELF or COFF and defaults to ELF. On UnixWare, it supports ELF
   only.

   The  UDK  is  a  next-generation  development  environment  that is an
   optional product from SCO. It includes C and a modern C++ compiler. It
   can  generate  binaries  that  will run on OpenServer, UnixWare 2, and
   UnixWare  7  when appropriate runtimes are installed. This is the only
   available  devsys for UW7. It emits ELF only which makes it unsuitable
   for  OpenServer  device  drivers  or  generating  binaries that run on
   pre-OpenServer SCO OSes such as ODT.

   GCC  can  be  built  from  source  to  provide  the "universal binary"
   features   of   the   UDK  following  the  directions  in  the  source
   distribution.  No  known binary kits are available at this time. Doing
   this does require you have a licensed copy of the UDK.
   robertlipe@usa.net
   See also http://www.sco.com/developers/products/devkits.html.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Gnu pthreads pth-1.2.2 passes all tests on OSR 5.0.5
   Gnu  pthreads  from ftp://prep.ai.mit.edu/pub/gnu/pth/pth-1.2.2.tar.gz
   builds and passes all tests cleanly on OSR 5.0.5
   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How  do  I  get  BerkeleyDB.3.1  to  compile  on  OpenServer 5.0.X and
   UnixWare 7.X.X?
   You will need autoconf. You can down load the configure.in patch at

   ftp://ftp.zenez.com/pub/zenez/prgms/BDB-configure.in.patch

   You  will  need  to  patch the configure.in file in the dist directory
   with this patch.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   OpenServer  5.0.X,  Error  as  or ld illegal option --b or as: TO FIX:
   Usage:  [-Qyn] [-VTRmn] [-Ydm,dir] [-o outfile] [-t target] file. What
   is wrong?
   This  is  usually caused by using the gnu assembler instead of the SCO
   assembler. I recommend using the SCO assembler. I rename my gnu as and
   ld    to    as.org    and    ld.org.    It   is   usually   found   in
   /usr/local/i?86-pc-sco3.2v5.0.X  where  ?  is  3,4,5,6  and  X is your
   version of SCO Unix. Skunkware gcc x would be 5 or 6.
   gerberb@zenez.com
   This  is  only  an issue for OpenServer. The above answer is incorrect
   for UnixWare and OpenUNIX.
   It's also why the installation instructions
   (http://gcc.gnu.org/install/specific.html#ix86-*-sco3.2v5*) say:
   The  native SCO assembler that is provided with the OS at no charge is
   normally  required.  If,  however,  you  must  be  able to use the GNU
   assembler  (perhaps  you're  compiling code with asms that require GAS
   syntax)  you may configure this package using the flags --with-gnu-as.
   You  must  use  a  recent version of GNU binutils; versions past 2.9.1
   seem  to work well. In general, the --with-gnu-as option isn't as well
   tested as the native assembler.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   What patches are needed for OpenSSL 0.9.6b for UnixWare or OpenUNIX 8?
   You will need to get and patch your source code with...
    ftp://ftp.zenez.com/pub/zenez/prgms/openssl-0.9.6b-patches.tar.gz

   Good Luck,
   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How     do    I    fix    Msql-Mysql-modules-1.2216    problem    with
   __deregister_frame_info?
   This symbol is in the -lgthreads library so after you have done a perl
   Makefile.PL

   You  need  to  cd to the mysql and edit the Makefile add -lgthreads to
   these two below.

   EXTRALIBS  = -L/usr/local/mysql/lib/mysql -lgthreads -lmysqlclient -lm
   -lz    -L/usr/local/gcc-2.95.3/lib/gcc-lib/i386-pc-sco3.2v5.0.6/2.95.3
   -lgcc    LDLOADLIBS    =    -L/usr/local/mysql/lib/mysql    -lgthreads
   -lmysqlclient -lm -lz
   -L/usr/local/gcc-2.95.3/lib/gcc-lib/i386-pc-sco3.2v5.0.6/2.95.3 -lgcc
   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   What is need to compile MySQL on SCO Operating Systems (OS) OpenServer
   and UnixWare 7.X.x?
   Please take a look at.

   http://www.zenez.com/B/general/mysql.html

   OpenServer 5.0.X

   The public http location of FSU threads is now at

   http://moss.csc.ncsu.edu/~mueller/pthreads/

   The offical download from this for SCO OS's is at

   ftp://ftp.zenez.com/pub/zenez/prgms/FSU-threads.tar.gz

   You will need the following
    1.  FSU threads.
    2.  gcc-2.95.2 or newer.
    3.  gnu make-3.79.1
    4.  perl 5.003_03 or newer.

   You can get a FSU threads binary from

   ftp.zenez.com/pub/zenez/prgms/

   The important files from ftp.zenez.com are also backed up on

   ftp://ftp.lerctr.org/pub/zenez
   Larry Rosenman has important ftp stuff on
   ftp://ftp.lerctr.org/pub/zenez . I wish to thank them both.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Resources on the SCO web site.
   Please  take a look at the SCO website. Because of a virus www.sco.com
   is at www.thescogroup.com .
   Developer Page.

   http://www.sco.com/developers/
   http://www.thescogroup.com/developers/

   Products for developers.

   http://www.sco.com/developers/products/devkits.html
   http://www.thescogroup.com/developers/products/devkits.html

   Moving to a SCO OS.

   http://www.sco.com/developers/migration/
   http://www.thescogroup.com/developers/migration/
   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How do I determine which development System is best for me to use?
   SCO has a web page to assist with this question...

   http://www.sco.com/developers/products/devkits.html

   gerberb@zenez.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How do I determine what dynamic libraries an application depends upon?
   The  "ldd"  command  will  tell  you,  assuming that the application's
   library  paths  are  already set up (either by the way it is built, or
   because LD_LIBRARY_PATH specifies the paths).

   But  frequently this is not the case, so use the "dump -Lv" command on
   the  application  executable  and look for "NEEDED" entries. These are
   the  dynamic libraries the executable depends upon. Repeat the command
   for  these  libraries,  recursively,  and  you'll find all the dynamic
   library dependencies.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How do I do Java programming?
   All  SCO  OpenServer  and  UnixWare  operating  systems come with full
   implementations  of  the  Java 2 Standard Edition Software Development
   Kit (often referred to as the JDK). See
   http://www.sco.com/developers/java/products/  for what the latest J2SE
   version is for your OSR5 or UW7 platform.

   To  find  out  how  to  build  and  run  Java applications on SCO UNIX
   systems, look at /usr/java/ReleaseNotes.html on your system. This will
   describe  any SCO-specific details about Java on that system, and will
   contain links to the appropriate Sun Java documentation for everything
   else.

   If  you  have  installed the right packages, you can also see demos of
   Java applications on your system in /usr/java/demo/.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How do I do Java native code (JNI) programming?
   Java  native  code programming means a Java application calling a C or
   C++  function,  or  a  C  or  C++ main program invoking a Java virtual
   machine and application.

   In  general  JNI programming should be done using the UDK compilers on
   both  SCO  OpenServer  and  UnixWare. In certain circumstances the GCC
   compilers  may be used on UnixWare, but not OpenServer. Details on all
   of this are in the SCO Java release notes in
   /usr/java/ReleaseNotes.html on your system.

   Be sure to look at the "mk" scripts in /usr/java/demo/native/, as they
   will  show  you  the  right  way  to  build  and  run  JNI code on SCO
   platforms.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   Why are there two threads APIs on UnixWare? Which should I use?
   UnixWare  7  has  two  threads APIs: SVR4/UI threads and POSIX threads
   (sometimes also known as pthreads). Both are implemented in UnixWare's
   libthread  threads library and associated system headers. The two have
   generally similar sets of functionality and generally can interoperate
   on UnixWare.

   SVR4/UI  was  a Unix International (mostly Sun and AT&T/USL) effort at
   defining  a  threads API. It has calls of the form thr_create() et al.
   You  will  see  this  API  used  in some existing UnixWare and Solaris
   applications.

   POSIX  is  a  later, more standards-based threads API. It has calls of
   the  form  pthread_create() et. al. You will see this API used in most
   applications today across a broad range of platforms.

   POSIX  threads is definitely the API to use, unless you are working in
   an existing code base that already uses SVR4/UI threads.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How do I do XML programming?
   SCO  OpenServer  5.0.7  supp  3  and  UnixWare  7.1.4 now contain full
   support  for  XML  parsing and building XML-based applications in five
   languages: C, C++, Java, Perl, and PHP. For UnixWare these XML parsers
   are  provided  by various packages in the SCOx components scox-enb and
   scox-uw  package  sets.  For  OpenServer some of these XML parsers are
   part of the base libraries and some come with the SCOx components.
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   How do I do Web Services (SOAP) programming?
   SCO  OpenServer 5.0.7 supp 3 and UnixWare 7.1.4 have support for SOAP-
   and  XML-based  Web  Services  programming  in five languages: C, C++,
   Java, Perl, and PHP.

   The  packages  that  provide  these  libraries and tools are contained
   within  the  SCOX  Components  scox-uw package set on UnixWare and the
   equivalent on OpenServer.

   If  you  are  interested  in web services programming, a good place to
   start  is with the package scoxldemo, which places simple web services
   client  program  demos  for  the  five  languages  into  the directory
   /usr/lib/scox/language_demos/. This will give you a good start on what
   web  services calls look like from each language, and on what commands
   are needed to build and run them.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   What J2EE implementations or Java app servers are available?
   BEA  WebLogic  Server  8.1  has  been  certified for (native, not LKP)
   UnixWare 7.1.4 and Java 1.4.2.

   UnixWare  7  developers  report  good  success running the open source
   JBoss  J2EE  implementation.  SCO is working on packaging it, to start
   with for their Smallfoot (embedded UnixWare) toolkit.

   Some  J2EE  implementations  have been certified for UnixWare 7 in the
   past, e.g. Novell Silverstream on UnixWare 7 with LKP.

   Bear  in  mind that you dont always need the whole enchilada! For just
   Java servlets and JSP, use the Tomcat package that comes with both SCO
   OpenServer  5.0.7  supp  3 and UnixWare 7.1.4. JDBC usually comes from
   your  database  vendor.  Java-based  SOAP/XML  Web Services can be run
   using  the Apache SCOx Components included with OpenServer 5.0.7 supp3
   and UW 7.1.4.
   jls@sco.com
   [Append to This Answer]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) SCO
   Development Environments. :
   About C language and Oracle C API
   我想用Oracle     C     api    和C    做一个小的系统,如果在sco    unix
   5.0.7下面可以实现吗, Oracle是否提供了这个C的api接口呢?
   i have a little english, but use chinese!
   [Append to This Answer]
   heruoyong@163.com
   (Category) (Category) SCO comp.unix.sco.programmer FAQ. :
   Hardware related programming
   Questions   and   answers  about  device  driver  and  other  hardware
   programming.

   It  is  important  to remember that robertl is not the FAQ maintainer.
   YOU are the FAQ maintainer. If you're tired of answering a question or
   seeing  it  answered  in comp.unix.sco.programmer it is your duty as a
   good net.citizen to plonk the answer into this FAQ.
   robertlipe@usa.net
   Answers in this category:
   (Answer) How can I write my own device driver for SCO?
   (Answer) How can I read or set modem signals on a serial port?
   (Answer)  How can I directly read or write the parallel port to use it
   for input or to control my non-printer devices?
   (Answer) How can I access to I/O ports or card memory from my program?
   (Answer) How can I write directly to the console like I do in DOS?
   (Answer) Can UnixWare device drivers be written in C++?
   [New Answer in "Hardware related programming"]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Hardware related programming :
   How can I write my own device driver for SCO?
   There are several available resources.

   "Writing  UNIX  Device  Drivers" by George Pajari (Addison Wesley) has
   some general how-to information and brief coverage of x86 topics.

   SCO driver book.

   SCO  makes available the Advanced Hardware Developer's Kit This is the
   definitive  guide  for  SCO-specific  topics such as Kernel debuggers,
   Network  drivers, Video drivers, and BTLDs that are not covered in any
   other place. If you're doing device drivers on or for SCO systems, you
   need this.

   To order, visit: http://www3.sco.com/Products/layered/develop/ahdk.htm
   .  You  can  also  use  the  online  version  that  SCO  provides  at:
   http://www2.sco.com:1996/dochome.html .
   robertlipe@usa.net
   The  documentation, sample drivers, and some test tools are availiable
   for  direct  download from http://www.sco.com/hdk . It is the complete
   AHDK. The SURF kernel monitor is inside the ndtests package.
   smallshaw@cs.man.ac.uk, robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Hardware related programming :
   How can I read or set modem signals on a serial port?
   If  your  goal  is  simply to block an open until DCD comes high (i.e,
   you're   writing  a  dialer)  just  open  the  uppercase  device  like
   /dev/tty1A or /dev/ttyA01.

   If  your goal is to get hardware flow control to work, look at the man
   pages for termio(M) and pay attention to the RTSFLOW and CTSFLOW bits.

   If your goal is to detect when DCD goes away, use the uppercase device
   as described above and be sure that CLOCAL is clear. This will deliver
   a SIGHUP to you when DCD drops.
   If  your goal is to be able to wiggle DTR (not RTS), you might look at
   the  description  of  B0  in  termio. In my experience, this is poorly
   implemented  in  a  number  of  serial  drivers  becuase  it's  poorly
   specified.  For  example,  it's only implied that DTR gets raise again
   once a non-zero bit rate is specified. It's similarly unclear what the
   bitrate  actually  _is_  while  you're in this mode, so if you need to
   process  characters  while DTR is low in this mode, it can be somewhat
   of a crapshoot.
   If  you  really,  really,  want  to  directly read and write the modem
   control lines on a serial port, you have two options.

   Many  third  party  serial  boards  provide  drivers  that support the
   TIOCMGET  and  TIOCMSET  ioctls.  Most  of the Digi intelligent serial
   board provide these ioctls.

   Gert Doering has modified the FAS serial driver to add support for the
   TIOCMGET   and   TIOCMSET   ioctls.   This  patch  can  be  found  at:
   ftp://ftp.leo.org/pub/comp/os/unix/networking/mgetty/fas-2.12-TIOCMGET
   .patch
   Don't  be  fooled by the presence of these ioctls in <sys/termio.h> or
   be  tempted  to  futz  with  -D_SVID3. They are unsupported in any SCO
   provided  serial  driver  through  and  including the OpenServer 5.0.4
   products.

   robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Hardware related programming :
   How can I directly read or write the parallel port to use it for input
   or to control my non-printer devices?
   With  the  SCO provided drivers through and including OpenServer 5.0.4
   family, you cannot directly manipulate or read the bits in the printer
   port.  You can communicate with custom equipment by providing your own
   device driver.

   This  functionality  is  believed  to exist in the Linux parallel port
   driver,  so you could perhaps port that driver or at least use it as a
   starting place.

   robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Hardware related programming :
   How can I access to I/O ports or card memory from my program?
   UNIX  is  about  sharing. While it may seem militant that it won't let
   you  (a  mere  user  program) go out and reset the disk controller and
   reprogram the interrupt controller at will, it's good for you. Honest.
   There is more information on doing this in this section of the FAQ.

   However,  if  you're  well  disciplined,  have  only one instance of a
   program  talking  to  the  device,  you don't need interrupts, and are
   willing  to  accept  some responsibility, it is possible to do it from
   user space. The classic example of this is the X server.

   On 5.0.0d and later it is possible to mmap() /dev/kmem into user space
   to talk to memory addressable hardware.

   To  talk  to  I/O space is a little trickier. You can call V86_IOPL to
   open  up  permissions  for inb and outb from user space. This can be a
   little  hazardous, as it allows all I/O accesses. Alternately, you can
   either create your own device driver to do the ins and outs for you or
   you  can  use minor numbers 3,4,5 of the major number of the mm driver
   (the  driver  for /dev/null, mem, and kmem) to access memory as bytes,
   halfwords, and words, respectively. Remember that you must re-seek the
   I/O  address  each  time.  If  you are going to do this, it is wise to
   encapsulate this into functions with the usual in/out[bwl] names. This
   is utterly undocumented and unsupported.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Hardware related programming :
   How can I write directly to the console like I do in DOS?
   This  is  a  degenerate  case  of the above question. As surely as you
   write your program to do this, someone will have an incompatible card,
   will  want  it  to run under X, or will need it from a graphic or text
   terminal.

   If  your  application  is  text,  you  should  write  your  app to use
   curses(S).  If  it's  graphical,  coding  it  for X windows would be a
   better choice.

   If   you   insist   on   doing   it   yourself,   look   for  tls015.*
   ftp://ftp.sco.com/TLS/  . Just please don't do it in code you're going
   to distribute to others.

   robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Hardware related programming :
   Can UnixWare device drivers be written in C++?
   Yes,    albeit    with   some   restrictions   and   guidelines.   See
   http://uw713doc.sco.com/en/HDK_basics/CTOC-cplus_top.html.
   jls@sco.com
   [Append to This Answer]
   (Category) (Category) SCO comp.unix.sco.programmer FAQ. :
   Known bugs in SCO Programming Environments.
   This  sections lists known problems and when possible, workarounds for
   SCO  programming  environments  including SCO's compilers, Visual Tcl,
   Java, and scripting.

   It  is  important  to remember that robertl is not the FAQ maintainer.
   YOU are the FAQ maintainer. If you're tired of answering a question or
   seeing  it  answered  in comp.unix.sco.programmer it is your duty as a
   good net.citizen to plonk the answer into this FAQ.

   robertlipe@usa.net
   Answers in this category:
   (Answer) C++ program chokes on time functions
   (Answer) 3.2v4 /bin/ar mangles archives with full pathnames
   (Answer) icc and byteorder.h
   (Answer) I found a bug in the compiler.
   (Answer) SCO-3.2v4.2 include file fixes for MySQL
   (Answer)  Why  doesn't gethostbyname() return the IP address correctly
   when dynamically linked?
   (Answer) Patches for gcc-3.3.1 for OpenServer 5.0.x
   [New Answer in "Known bugs in SCO Programming Environments."]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Known bugs in SCO Programming Environments. :
   C++ program chokes on time functions
   Detail the missing extern "C" stuff in headers, how to fix.

   FIxed in OpenServer 5.0.4.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Known bugs in SCO Programming Environments. :
   3.2v4 /bin/ar mangles archives with full pathnames
   doctor doctor
   robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Known bugs in SCO Programming Environments. :
   icc and byteorder.h
   edit to test __i386
   robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Known bugs in SCO Programming Environments. :
   I found a bug in the compiler.
   Yes,  there  are  some.  It's far more likely there's an error in your
   program.

   describe how to diagnose if it really is or not.
   robertlipe@usa.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Known bugs in SCO Programming Environments. :
   SCO-3.2v4.2 include file fixes for MySQL
   The  fixes  I  have  found  that  are  need  for  SCO UNIX 3.2v4.2 are
   available at:

   ftp://ftp.zenez.com/pub/zenez/prgms/SCO-3.2v4.2-includes.tar.gz
   Have fun.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Known bugs in SCO Programming Environments. :
   Why  doesn't  gethostbyname()  return  the  IP  address correctly when
   dynamically linked?
When gethostbyname() was used in a dynamic library with a dependency
on libsocket and libc it failed to return the IP address correctly in
hostent->h_addr_list[0], giving 255.255.255.255 instead of the correct
address for my machine, frodo, of 192.168.0.130.

The library code is in libbad.c and the test driver in t0001.c below.
When compiled this way, it failed.

cc -w3 -g -c -belf -o t0001dynlib.o t0001.c
cc -w3 -g -c -belf -o libbaddynlib.o libbad.c
cc -G -belf -o libbaddynlib.so libbaddynlib.o -lsocket -lc
LD_RUN_PATH=$PWD cc -belf -o asdynlib-fail t0001dynlib.o -L$PWD -lbaddynlib

When compiled this way (without the -lsocket/-l on the dynamic library line it)
it worked.

cc -w3 -g -c -belf -o t0001dynlib.o t0001.c
cc -w3 -g -c -belf -o libbaddynlib.o libbad.c
cc -G -belf -o libbaddynlib.so libbaddynlib.o
LD_RUN_PATH=$PWD cc -belf -o asdynlib-works t0001dynlib.o -L$PWD -lbaddynlib -l
socket -lc

I had this problem on OpenServer 5.0.6a with version 5.1.2A of the linker.
To fix I applied oss646a and that seemed to fix everything.  Presumably the
same fix will work for 5.0.5a, although I couldn't test the original working
version as that would not compile without -lsocket -lc for the dynamic
library.

os001:jonm $ cat libbad.c
#include <netdb.h>
struct hostent *my_gethostbyname(char *name) {
        struct hostent *my_hostent;

        my_hostent = gethostbyname(name);

        return my_hostent;
}

os001:jonm $ cat t0001.c
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>

int main(void) {
        int errs = 0;
        struct hostent *h;
        struct hostent *my_gethostbyname(char*);

        h = my_gethostbyname("localhost");
        if (h == NULL) {
                fprintf(stderr, "localhost FAIL - gethostbyname\n");
                errs++;
        } else if (h->h_addr[0] == -1 && h->h_addr[1] == -1 &&
            h->h_addr[2] == -1 && h->h_addr[3] == -1) {
                fprintf(stderr, "localhost FAIL - IP address\n");
                errs++;
        } else {
                fprintf(stderr, "localhost OK - %d.%d.%d.%d\n",
                    h->h_addr[0], h->h_addr[1], h->h_addr[2], h->h_addr[3]);
        }

        h = my_gethostbyname("frodo");
        if (h == NULL) {
                fprintf(stderr, "frodo FAIL - gethostbyname\n");
                errs++;
        } else if (h->h_addr[0] == -1 && h->h_addr[1] == -1 &&
            h->h_addr[2] == -1 && h->h_addr[3] == -1) {
                fprintf(stderr, "frodo FAIL - IP address\n");
                errs++;
        } else {
                fprintf(stderr, "frodo OK - %s\n", inet_ntoa(*(struct in_addr *
)h->h_addr));
        }

        return (errs != 0);
}

   jonm@alchemetrics.co.uk

   cobrakings@263.net
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Known bugs in SCO Programming Environments. :
   Patches for gcc-3.3.1 for OpenServer 5.0.x
   Thanks to Kean
   Here is what you need...

   Download gcc from ftp.gnu.org
 ftp://ftp.gnu.org/gnu/gcc/gcc-3.3.1.tar.gz

   You need to download these patches and patch gcc-3.3.1
 ftp://ftp.zenez.com/pub/zenez/prgms/331patch.bz2

   bunzip2 331patch.gz2
   apply patch
   In  the  gcc-3.3.1  directory I make an "osr5" directory. cd into that
   and  then  execute:  CC=gcc  CFLAGS=-O2  CXX=g++  CXXFLAGS=-O2  NM=gnm
   ../configure \
   --with-gnu-as \
   --with-as=/usr/gnu/bin/as \
   --disable-shared \
   --with-system-zlib \
   --enable-multilib \
   --host=i586-pc-sco3.2v5.0 \
   --build=i586-pc-sco3.2v5.0

   This  assumes  you  have  my  latest  GNU  Development  Tools  package
   installed   and  that  /usr/gnu/bin  appears  on  your  PATH  *before*
   /usr/local/bin.  This passes the vast majority of its internal DejaGNU
   tests.  Its  about  the  best  shape GCC has been in on OSR5 in a long
   while.  But  there  are  problems,  especially  with C++. The way they
   handle  template  instantiation  is  awkward. You may find you need to
   link  C++ programs and shared libraries with -Wl,-z -Wl,multidefs. The
   real  solution  is for us to change our link editor to recognize these
   .gnu.linkonce  sections  and  obey them, or to get the GNU link editor
   working  on  OSR5, something I am fairly close to getting right but it
   is  still a way off. But at least this gets you most of the way there.
   I am curious to know how this works out for you.
   This set of patches adds full support for gjc, the GNU Java Compiler.
   Kean.
   gerberb@zenez.com
   [Append to This Answer]
   (Category) (Category) SCO comp.unix.sco.programmer FAQ. :
   Third-party Languages and Development Tools for SCO Platforms
   These answers list third-party language and development tools that are
   available on various SCO platforms.

   This  information  comes from vendors' web pages, product sheets, etc.
   Please update the information if you have more current knowledge.

   Usually,  platforms  later than those listed will also work. So if you
   see  a  product  listed  for  OpenServer  5.0.4 or UnixWare 7, you can
   likely  assume the product runs on OpenServer 5.0.5 or UnixWare 7.1 as
   well.

   Sometimes  vendors  have  listings  for  a generic "SVR4 Intel", which
   means  it  will  usually  run  on  UnixWare  2  or UnixWare 7, or less
   commonly, for a generic "SVR3 Intel", which means it will probably run
   on SCO UNIX or OpenServer.

   Finally, when in doubt, ask the vendor.
   gerberb@zenez.com, jls@sco.com
   Subcategories:

   Answers in this category:
   (Answer) What COBOL compilers are available for SCO?
   (Answer) What Fortran compilers are available for SCO?
   (Answer) What Ada compilers are available for SCO?
   (Answer) What about BASIC, Pascal, or Modula-2 for SCO?
   (Answer) What CORBA implementations are available for SCO?
   (Answer) What 4GLs are available for SCO?
   (Answer) What IDEs are available for SCO?
   (Answer) SCOTruss by Troy DeJongh and Eric Sybesma
   (Answer) Comeau C/C++ supports Standard C++for SCO (Caldera) OS's
   [New  Answer  in  "Third-party Languages and Development Tools for SCO
   Platforms"]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   What COBOL compilers are available for SCO?
Micro Focus v4.1 (Object COBOL); v4 (COBOL 85)
        OSR5.0.x, UW 2.1.2, UW 7 (with ptf7013), SCO UNIX
        http://www.microfocus.com

ACUCOBOL v4.1.0CL (COBOL 85)
        OSR5.0.x, UW 2.0, SCO UNIX, Xenix
        http://www.acucobol.com

Liant RM/COBOL 85 v6.6.1
        "on SCO UNIX"
        http://www.liant.com


   jls@sco.com
Customers have also reported that Fujistu COBOL, formerly for PCs, is now avail
able for UNIX (presumably including SCO) as well.

   jls@sco.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   What Fortran compilers are available for SCO?
   Edinburgh Portable Compilers (EPC) Fortran 90
        UW 2.x
        http://www.epc.com

   g77 (GNU Fortran 77)
        OSR5, UW7 from Skunkware egcs distribution
        http://www.sco.com/skunkware , http://egcs.cygnus.com

   Microway NDP Fortran 77
        x86 UNIX V.3 and V.4
        http://www.microway.com

   jls@sco.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   What Ada compilers are available for SCO?
Ada 95
        Janus/A95 v. 3.1.0 for SCO UNIX 3.2
        GNU-based GNAT ( http://www.gnat.com )
                has a UnixWare 7 port

Ada 83
        Alsys for OSR5, SVR4 Intel, SCO UNIX 3.2
        IntegrAda, Janus/Ada, VADS, Green Hills for SCO UNIX 3.2
        http://www.adaresource.org

   jls@sco.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   What about BASIC, Pascal, or Modula-2 for SCO?
BASIC
        Thoroughbred Software Business BASIC
        http://www.tbred.com

Pascal
        EPC Pascal for UW 2.x; http://www.epc.com
        MicroWay NDP Pascal for x86 UNIX V.3, V.4; http://www.microway.com

Modula-2
         EPC Modula-2 for UW 2.x; http://www.epc.com

   jls@sco.com
   Bbx4  and  /or Visual Pro5, both upwards compatible to Thouroughbred's
   SMC basic ( (and has conversion tools for SMC) see http:/www.basis.com
   A.Sas@katwijkfarma.nl
   CET Basic. Info at http://www.phaseonesystems.com
   jmdubois@free.fr
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   What CORBA implementations are available for SCO?
First the commercial ones....

Iona Orbix (C++)
        Orbix v. 2.3c on UW 7.0.1, UW 2.1.2
        Orbix v. 3 not yet in QA process for SCO platforms
        http://www.iona.com

Iona OrbixWeb (Java)
        OrbixWeb v. 3.1 on JDK 1.1.3u
        Later versions on JDK 1.1.7A under test

PeerLogic (ex-ICL) DAIS on UW 7
        (the only ORB officially released for UW 7)
        http://www.peerlogic.com/products/dais/f_dais.htm
        also DAIS J2 for JDK 1.1.x

Inprise VisiBroker, as part of UW7 Netscape Enterprise
        ORB is exposed via IIOP interface

Inprise VisiBroker for Java on JDK 1.1.5 or higher
        http://www.inprise.com/visibroker

Expersoft CORBAplus, Java Edition on JDK 1.1.x
        http://www.expersoft.com


Now some freeware ones....

OmniORB2 v. 2.5.0 on Skunkware 98 for OSR5
        we are trying to get better threading with v. 2.7.0

Chorus COOL-ORB
        once on OSR5, now discontinued?

MICO

ILU     ftp://ftp.parc.xerox.com/pub/ilu

Corbus  http://www.bbn.com/products/dpom/corbus.htm

Electra http://www.olsen.ch/~maffeis/electra.html

   jls@sco.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   What 4GLs are available for SCO?
Oracle Developer 2000 v. 2.1
        UW7, UW 2.1.2
        http://www.oracle.com

Informix Dynamic 4GL v. 2.10
        UW7, OSR5; earlier version OSR5, UW 2.1.2
        http://www.informix.com

Unify ACELL IDS 4GL
        OSR5.0.4; earlier version UW 2.1, SCO UNIX
        http://www.unify.com

Recital 8.0 Unix Developer
        OSR5.0.0, UW 2.1.1, SCO UNIX 3.2v4.2
        http://www.recital.com; single-user non-commercial is free

   jls@sco.com
   I've  been  told  by customers that the Informix 4GL also runs on OSR5
   and Xenix.
   Customers have used the Ingres 4GL, as well as ICL DMS.
   The Sybase 4GL is also thought to work on OSR5.
   In  general, if a database itself is supported on a SCO platform, then
   it's  likely (though not necessarily certain) an acommpanying 4GL does
   as well.
   jls@sco.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   What IDEs are available for SCO?
TakeFive SNiFF+
        full-featured, support C/C++/Java IDE for UW7
        http://www.takefive.com
        ftp://ftp.takefive.com/pub/SNiFF/patches/3.0.2 for UDK debugger integra
tion

Sun Java WorkShop (for programmers), Sun Java Studio (for power end-users)
        through 1998, both in UDK (UW7, OSR5, UW2)
        new version in 1999 becoming "open source" -- will become available on
Skunkware.

Freeware alternatives (working on getting into Skunkware):
        Code Crusader, http://www.cco.caltech.edu/~jafl/jcc/ , inspired by Metr
owerks
        RHIDE, http://www.tu-chemnitz.de/~sho/rho/rhide-1.4/rhide.html , inspir
ed by Borland
        xwpe-alpha, http://www.rpi.edu/~payned/xwpe/ , inspired by Borland
        gIDE, http://gide.pn.org , based on freeware GTK+ toolkit
        more development resources at http://tx.us.mirrors.freshmeat.net/appind
ex/development/

   jls@sco.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   SCOTruss by Troy DeJongh and Eric Sybesma
   Eric  Sybesma  and  Troy  DeJongh have written scotruss a program that
   gives truss-like capablilites for the SCO Operating System.
   The latest version can be found at http://pobox.com/~troyd/
   http://pobox.com/~troyd/scotruss.tar.gz                        gzip'ed
   http://pobox.com/~troyd/scotruss.tar.Z compress'ed
   Troy DeJongh can be reached via email at troyd@pobox.com
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Third-party Languages and Development Tools for SCO Platforms :
   Comeau C/C++ supports Standard C++for SCO (Caldera) OS's
   Comeau  C/C++  supports  Standard C++, Standard C90, and Standard C99,
   and  is  available  for  the different SCO operating systems. For more
   info check

   http://www.comeaucomputing.com

   Comeau Computing <comeau@comeaucomputing.com>
   gerberb@zenez.com
   [Append to This Answer]
   (Category) (Category) SCO comp.unix.sco.programmer FAQ. :
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x
   Information to help with OpenServer, UnixWare and OpenUNIX.
   gerberb@zenez.com
   Subcategories:

   Answers in this category:
   (Answer) Latest Versions of SCO OS's are OpenServer is 5.0.7, UnixWare
   is 7.1.4, OpenUNIX 8.0.0 (UnixWare 7.1.2|) and SCO Linux 4.0
   (Answer) Perl5.005_03 patches and additions for UnixWare 7.1.0
   (Answer) Patches for Roxen Challenger 1.3.X
   (Answer)  Where can I find information on migration from OpenServer to
   UnixWare or OpenUNIX ?
   (Answer)  To compile MySQL-3.23.56 on UnixWare 7.1.x or OpenUNIX 8.0.0
   you will need these patches.
   (Answer) Openssl-0.9.6i patch for OpenServer 5.0.X.
   (Answer)  How  do  I  get  openssl-.0.9.6x  to compile and make shared
   libraries on OpenServer 5.0.X, UnixWare 7.1.X and OpenUNIX 8.0.0?
   (Answer) How do I make test for a SCO OS for preprocessor in ..., code
   specific to SCO Operating Systems.
   (Answer) How can I get cvs-1.11.5 to compile?
   (Answer)  What  is  needed  for  MySQL-4.0.X  to compile on OpenServer
   5.0.X?
   (Answer) How do I get gnupg to compile for SCO OS's?
   [New  Answer  in  "Misc  for  OpenServer  5.0.X  and  Unixware 7.x.x /
   OpenUNIX 8.x.x"]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   Latest  Versions  of  SCO  OS's  are  OpenServer is 5.0.7, UnixWare is
   7.1.4, OpenUNIX 8.0.0 (UnixWare 7.1.2|) and SCO Linux 4.0
   The  latest  versions  just  released  by  SCO  are  OpenServer 5.0.7,
   UnixWare Version 7.1.4. For more information check http://www.sco.com

   SCO  has  gone  back to the name UnixWare. OpenUNIX 8.0.0 was UnixWARE
   7.1.2.
   gerber@zenez.com, gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   Perl5.005_03 patches and additions for UnixWare 7.1.0
   The patches for this are available at
   ftp://www.zenez.com/pub/zenez/prgms/perl5.005_03-patches/
   There  are  three files. Configure.patch to patch Configure in the top
   level of the distribution. sco.sh.patch to patch hints/sco.sh
   svr5.sh A new file that goes in hints to allow building with cc or gcc
   with  or  with  out  threads.  To  get  threads  with gcc you must use
   gcc-2.95.1 or newer.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   Patches for Roxen Challenger 1.3.X
   The  following  are the patches required to get roxen Challenger 1.3.x
   through  the  latest  1.3.122  to  compile  and  work.  These  are for
   configure.in

   ftp://ftp.zenez.com/pub/zenez/prgms/roxen_1.3.x.patches.tar.gz
   To installed them cd to roxen directroy.
   Copy files to the roxen directory and gunzip them.
   tar xf roxen.1.3.x.patches.tar
   run autoconf in the top level and in pike/0.6/src directrories.
   Make  sure  your  OSR  5.0.X kernel NOFILES is set to 2048 or more and
   your UnixWare 7.1.X kernel HFNOLIM is set to 4096.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   Where  can I find information on migration from OpenServer to UnixWare
   or OpenUNIX ?
   SCO has removed the portal. There is information on.
   http://www.sco.com/

   Please search the SCO site.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   To  compile MySQL-3.23.56 on UnixWare 7.1.x or OpenUNIX 8.0.0 you will
   need these patches.
   The patches are on ftp.zenez.com in
   pub/zenez/prgms/mysql-3.23.56-patches-ou8.

   ftp://ftp.zenez.com/pub/zenez/prgms/mysql-3.23.56-patches-ou8/

   These  are  not needed in newer versions of MySQL. Like MySQL-4.X.X or
   MySQL-5.X.X.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   Openssl-0.9.6i patch for OpenServer 5.0.X.
   The  following  is a patch that helps performance on OpenServer 5.0.x.
   It was provided by Kean Johnston <jkj@sco.com>

   The patch is available at

   ftp://ftp.zenez.com/pub/zenez/prgms/openssl-0.9.6i-osr5.patches.gz

   Good Luck,
   <jkj@sco.com>
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   How  do  I get openssl-.0.9.6x to compile and make shared libraries on
   OpenServer 5.0.X, UnixWare 7.1.X and OpenUNIX 8.0.0?
   You run Configure with one of the following options.

   UnixWare 7
   unixware-7  unixware-7-gcc  unixware-7-pentium  unixware-7-pentium_pro
   unixware-7-shared unixware-7-gcc-shared

 $ ./Configure unixware-7-shared
 $ make
 $ make test
 # make install

   Then I created and installed the shared libraries with...
 $ shlib/svr5-shared.sh
 $ shlib/svr5-shared-installed.sh

   Updated shlib files can be had at...

   ftp://ftp.zenez.com/pub/zenez/prgms/svr5-shared.sh
   ftp://ftp.zenez.com/pub/zenez/prgms/svr5-shared-installed
   ftp://ftp.zenez.com/pub/zenez/prgms/svr5-shared-gcc.sh

   OpenUNIX
   OpenUNIX-8  OpenUNIX-8-gcc  OpenUNIX-8-pentium  OpenUNIX-8-pentium_pro
   OpenUNIX-8-shared     OpenUNIX-8-gcc-shared     I    used    Configure
   OpenUNIX-8-shared....

 $ ./Configure OpenUNIX-8-shared
 $ make
 $ make test
 # make install

   Then I created and installed the shared libraries with...
 $ shlib/svr5-shared.sh
 $ shlib/svr5-shared-installed.sh

   Updated shlib files can be had at...

   ftp://ftp.zenez.com/pub/zenez/prgms/svr5-shared.sh
   ftp://ftp.zenez.com/pub/zenez/prgms/svr5-shared-installed
   ftp://ftp.zenez.com/pub/zenez/prgms/svr5-shared-gcc.sh

   OpenServer 5.0.X
   sco5-cc sco5-cc-pentium sco5-cc-shared sco5-gcc sco5-gcc-shared
 $ ./Configure sco5-gcc-shared
 $ make
 $ make test
 # make install

   Then I created and installed the shared libraries with...
 $ shlib/svr5-shared.sh
 $ shlib/svr5-shared-installed.sh

   Updated shlib files can be had at...
   ftp://ftp.zenez.com/pub/zenez/prgms/sco5-shared.sh
   ftp://ftp.zenez.com/pub/zenez/prgms/sco5-shared-installed
   ftp://ftp.zenez.com/pub/zenez/prgms/sco5-shared-gcc.sh

   Openssl-0.9.7 shlib files are available at

   ftp://ftp.zenez.com/pub/zenez/prgms/openssl-0.9.7-shlib/

   Good Luck,

   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   How do I make test for a SCO OS for preprocessor in ..., code specific
   to SCO Operating Systems.
   I use the following and put the specific defines needed between the if
   and endif

   I have found that is only works with the SCO native compilers.

 # if defined(__SCO_VERSION__)

 # endif

   This seems to work with all compilers.
 # if defined(_SCO_DS)

 # endif

   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   How can I get cvs-1.11.5 to compile?
   You need the following patches.

 ftp://ftp.zenez.com/pub/zenez/prgms/INSTALL.patch
 ftp://ftp.zenez.com/pub/zenez/prgms/diff-system.h.patch
 ftp://ftp.zenez.com/pub/zenez/prgms/lib-system.h.patch
 ftp://ftp.zenez.com/pub/zenez/prgms/src-buffer.c.patch
 ftp://ftp.zenez.com/pub/zenez/prgms/src-buffer.h.patch

   These file need to be changed in the diff, lib and src directories.
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   What is needed for MySQL-4.0.X to compile on OpenServer 5.0.X?
   You need the latest version of FSU-threads.
   This  version  is no longer needed. MySQL-4.0.20 will compile and work
   with the orignal FSUtreads 3.14.

   There is currently a test version of FSU-threads-3.14a.tar.gz on

   ftp://ftp.zenez.com/pub/zenez/prgms/FSU-threads-3.14a.tar.gz

   The above is needed for MySQL-4.0.17, and MySQL-4.0.18.

   Please use
   ftp://ftp.zenez.com/pub/zenez/prgms/FSU-threads.tar.gz
   gerberb@zenez.com
   [Append to This Answer]
   (Answer)  (Category)  SCO  comp.unix.sco.programmer  FAQ. : (Category)
   Misc for OpenServer 5.0.X and Unixware 7.x.x / OpenUNIX 8.x.x :
   How do I get gnupg to compile for SCO OS's?
   GnuPG  use  asm  unless  it  is  disabled. To get gnuPG to compile try
   using.
 ./configure --disable-asm

   gerberb@zenez.com
   [Append to This Answer]
   (Category) (Category) SCO comp.unix.sco.programmer FAQ. :
   How to Find FAQ
   Please look for the FAQ on http://www.zenez.com/cgi-bin/scoprogfaq/faq
   gerber@zenez.com, gerberb@zenez.com
   Subcategories:

   Answers in this category:
   (Answer) Also look on http://www.zenez.com/cgi-bin/scoprogfaq/faq
   [New Answer in "How to Find FAQ"]
   (Answer) (Category) SCO comp.unix.sco.programmer FAQ. : (Category) How
   to Find FAQ :
   Also look on http://www.zenez.com/cgi-bin/scoprogfaq/faq
   [Append to This Answer]

   This document is: http://www.zenez.com/cgi-bin/scoprogfaq/faq?file=1


   [Search] [Appearance] [Show Top Category Only]
           This is a Faq-O-Matic 2.721.
-- 
Boyd Gerber <gerberb@zenez.com> 801 849-0213
ZENEZ	1042 East Fort Union #135, Midvale Utah  84047

User Contributions:

1
Feb 23, 2023 @ 7:19 pm
No deposit bonuses 150 FREE SPINS
https://vulkancasino-6ch7.ru
New Slots
https://joycasino-1zx4.ru

Comment about this article, ask questions, or add new information about this topic:


[ Usenet FAQs | Web FAQs | Documents | RFC Index ]

Send corrections/additions to the FAQ Maintainer:
gerberb@zenez.com (Boyd Lynn Gerber)





Last Update March 27 2014 @ 02:12 PM