[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: problematic installation leads to errors



Marco Oetken <Marco.Oetken@informatik.uni-oldenburg.de> writes:

> Hello!
> 
> I detected two bugs, I thought, but I now think
> that it was more a problematic installation.
> But if you see error messages like
>    'Error: Module `libX11' doesn't have a LIBRARY directive'.
> or
>    'Error: Symbol file /usr/local/lib/oo2c/VO/sym/Imlib.Sym is corrupt,\
>      aborting at pos 430'
> or 
>    'In file Src/VOApplication.Mod:
>     845:302 `X11' imports `C' with illegal key'
> this mail might be interesting.
> 
> The behaviour described here might be interesting to 
> the compiler developers, too. 
> 
> 
> 1> I work with VisualOberon and therefore I had to install
>   the interfacemodules for X11. My first attempts with a recent
>   version lead to the message
>    'Error: Module `libX11' doesn't have a LIBRARY directive'.
> 
>   After I moved 
>    'MODULE libX11 [LIBRARY "oo2c_x11" "0:0:0"; INTERFACE "C"];'
>   within libX11.Mod into the second line (inserted an empty
>   one before), it compiled without the message.

I frequently install the X11 interface myself, albeit only on 2-3
different machines (i386/Linux, SPARC/Solaris, and sometimes on a DEC
Alpha), and this kind of problems don't happen for me.  Has anyone out
there similar problems?

> 2> I have problems with compiling modules sometimes. For example:
> [shadow@localhost XOS]$ oo2c Src/VOApplication.Mod
> Error: Symbol file /usr/local/lib/oo2c/VO/sym/Imlib.Sym is corrupt,\
>  aborting at pos 430

This means that the binary symbol file is broken.  This should not
happen, even if the compiler is interupted while writing the file.
Personally, I haven't seen this message in ages.  Anyone else with
this kind of problems?

> In file Src/VOApplication.Mod:
> 845:302 `X11' imports `C' with illegal key
> [shadow@localhost XOS]$
> 
>   'oob Imlib', of course, stops with the same errors. But compiling works
>   with a different argument to oo2c.
> 
> [shadow@localhost XOS]$ oo2c -M Src/VOApplication.Mod
> [shadow@localhost XOS]$ 
> 
>   'oob Imlib', of course, works correctly now. As I'm working with oberon
>   as a normal user and Imlib.sym is protected
> (-rw-r--r--   1 root     root         2134 May 14 21:57 
>      /usr/local/lib/oo2c/VO/sym/Imlib.Sym)
>   I couldn't have modified it.

Do I read this correctly: the symbol file is sometimes read correctly
and sometimes reported as broken, although in both cases the same file
was read and it could not have been modified in between?  Are you sure
that the "-M" did not recompile the base module (option "-v" would
have shown this)? 

>   I have the following local directory structure:
>   <project>  - Name of this directory depends on the project it contains.
>                The executables and some kind of documentation goes here.
>     Src      - Contains all modules.
>     sym      - Directory for the symbol files.
>     obj      - Directory for the object files.
> 
>   Although in <project> there are no such modules, the compiler
>   creates the following files sym/X11.Sym, sym/Xkeysymdef.Sym,
>   sym/Xutil.Sym, obj/X11.h, obj/Xkeysymdef.h and obj/Xutil.h.
>   Those files seem to be copies of old versions, which have not
>   been deleted by the installation process of ooc version 1.4.0.
>   They were put there by VisualOberon or an older version of OOC.
> 
>   After I removed those old files the above errors seemed to vanish.

If the files a recreated, then the compiler went ahead and compiled
the X11 modules anew.  Which kind of defeats the idea that they are
installed once as a global library.  To find out which files oo2c
searches in which directories, you can run the compiler with
"--write-config".  The output also includes the search paths.  To find
out which file oo2c uses, or whether oo2c cannot find a specific file,
use "oowhereis".  E.g. "oowhereis libx11.Mod" tells you which file
oo2c uses when invoked from the same directory.

-- mva