Ticket #1244 (closed defect: wontfix)

Opened 15 months ago

Last modified 6 weeks ago

lighttpd does not compile on Digital UNIX

Reported by: Gabucino Owned by: jan
Priority: normal Milestone:
Component: build_autotools Version: 1.4.15
Severity: blocker Keywords:
Cc: Blocked By:
Need User Feedback: no Blocking:

Description

First of all, every single module has unresolved symbols, like this:

gcc-3.2 -shared  .libs/mod_evasive.o  -L/usr/local/lib -L/usr/pkg/lib  -Wl,-msym -Wl,-soname -Wl,mod_evasive.so `test -n "" && echo -Wl,-set_version -Wl,` -Wl,-update_registry -Wl,.libs/so_locations -o .libs/mod_evasive.so
config_insert_values_global
config_check_cond
buffer_is_equal_string
inet_ntop_cache_get_ip
log_error_write
buffer_init_string

Attachments

config.log (172.9 kB) - added by Gabucino 15 months ago.
inttypes.h (343 bytes) - added by Gabucino 15 months ago.

Change History

  Changed 15 months ago by Gabucino

  • pending unset

Integer types are not detected correctly:

 gcc-3.2 -DHAVE_CONFIG_H -DLIBRARY_DIR=\"/usr/local/lib\" -I. -I.. -I/usr/local/
include -I/usr/pkg/include -D_REENTRANT -D__EXTENSIONS__ -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE -D_LARGE_FILES -g -O2 -Wall -W -Wshadow -pedantic -std=gnu99
 -MT mod_cml_la-mod_cml_lua.lo -MD -MP -MF .deps/mod_cml_la-mod_cml_lua.Tpo -c m
od_cml_lua.c  -DPIC -o .libs/mod_cml_la-mod_cml_lua.o
cc1: warning: changing search order for system directory "/usr/local/include"
cc1: warning:   as it has already been specified as a non-system directory
In file included from mod_cml_lua.c:16:
md5.h:39: parse error before "u_int32_t"
md5.h:39: warning: no semicolon at end of struct or union
md5.h:40: warning: type defaults to `int' in declaration of `count'
md5.h:40: ISO C forbids data definition with no type or storage class
md5.h:41: `buffer' redeclared as different kind of symbol
buffer.h:18: previous declaration of `buffer'
md5.h:42: parse error before '}' token
...

The system doesn't have inttypes.h, but has db.h which has u_int32_t and the likes. Proper inttypes detection is essential.

  Changed 15 months ago by Gabucino

Anyways, configure can't detect my manually created inttypes.h:

configure:4766: checking for inttypes.h   
configure:4787: gcc-3.2 -c -g -O2 -I/usr/local/include -I/usr/pkg/include conft
cc1: warning: changing search order for system directory "/usr/local/include"
cc1: warning:   as it has already been specified as a non-system directory
conftest.c:52: parse error at end of input

config.log attached

Changed 15 months ago by Gabucino

Changed 15 months ago by Gabucino

  Changed 15 months ago by Gabucino

And, with Digital C:

source='mod_webdav.c' object='mod_webdav_la-mod_webdav.lo' libtool=yes  DEPDIR=.
deps depmode=none /bin/ksh ../depcomp  /bin/ksh ../libtool --tag=CC   --mode=com
pile cc -std -DHAVE_CONFIG_H -DLIBRARY_DIR="\"/usr/local/lib\"" -I. -I..   -I/us
r/local/include -I/usr/pkg/include -D_REENTRANT -D__EXTENSIONS__ -D_FILE_OFFSET_
BITS=64 -D_LARGEFILE_SOURCE -D_LARGE_FILES     -g -c -o mod_webdav_la-mod_webdav
.lo `test -f 'mod_webdav.c' || echo './'`mod_webdav.c
 cc -std -DHAVE_CONFIG_H -DLIBRARY_DIR=\"/usr/local/lib\" -I. -I.. -I/usr/local/
include -I/usr/pkg/include -D_REENTRANT -D__EXTENSIONS__ -D_FILE_OFFSET_BITS=64 
-D_LARGEFILE_SOURCE -D_LARGE_FILES -g -c mod_webdav.c  -DPIC -o .libs/mod_webdav_la-mod_webdav.o
cc: Warning: base.h, line 487: Trailing comma found in enumerator list.
        } stat_cache_engine;
--------^
cc: Error: mod_webdav.c, line 1705: In this statement, "c->file.mmap.start" and "(-1)" may not be compared for equality or inequality.
                                if (c->file.mmap.start == MAP_FAILED) {
------------------------------------^
cc: Error: mod_webdav.c, line 1713: In this statement, "(-1)" and "(c->file.mmap.start=mmap(...))" may not be compared for equality or inequality.
                                        if (MAP_FAILED == (c->file.mmap.start = mmap(0, c->file.length, PROT_READ, MAP_SHARED, c->file.fd, 0))) {
--------------------------------------------^
*** Exit 1

  Changed 13 months ago by jan

  • status changed from new to assigned

We need access to the Digital UNIX machine to fix the issues properly.

  Changed 13 months ago by gabor@…

I need a contact address where I send the login credentials.

  Changed 13 months ago by jan

This is Digital Unix 4.0b, from 1996 ...

It will take some effort to get it running on this old lady.

follow-up: ↓ 9   Changed 13 months ago by gabor@…

Yes, but most (portable, e.g.: not linux-specific) stuff runs on it, even modern ones. It will also help on Tru64 (DUnix 5.0), and in general portability.

  Changed 13 months ago by darix

how does it help if e.g. many types from stdint.h are missing? including db.h is just an ugly workaround. imho.

and copying most of the defines into our tree isnt a good solutions either.

just my 2 cents.

in reply to: ↑ 7   Changed 13 months ago by darix

and so far lighttpd runs on hpux, solaris (even the old ones) and irix, bsds, linux, osx, windows. that doesnt sounds like "unportable" code.

  Changed 13 months ago by gabor@…

...and I never said that.

  Changed 11 months ago by Gabucino

Is this dropped? I got as far as this:

# lighttpd -f /usr/local/etc/lighttpd.conf  
2007-10-07 19:03:33: (plugin.c.170) dlopen() failed for: /usr/local/lib/mod_staticfile.so dlopen: Unresolved symbols 
2007-10-07 19:03:33: (server.c.594) loading plugins finally failed 

... which is maybe related to the missing RTLD_GLOBAL (now defined to be 0)?

  Changed 9 months ago by Gabucino

lighttpd now runs on Digital Unix 4.0. Porting effort done by Arthur Bujdoso (Artlace) and me.

http://data.gabucino.be/lighttpd-dunix.diff

  Changed 6 weeks ago by stbuehler

  • status changed from assigned to closed
  • resolution set to wontfix
  • milestone 1.5.0 deleted

I see no reason to officially support a system which doesn't even know snprintf. And has neither stdint.h nor inttypes.h.

Btw: that patch... #define when a typedef should be used?...

Add/Change #1244 (lighttpd does not compile on Digital UNIX)

Author



Change Properties
<Author field>
Action
as closed
Next status will be 'reopened'
 
Note: See TracTickets for help on using tickets.