# tinyBSD won't compile



## opnet (Feb 2, 2011)

I just got a wyse winterm 3150se for a robot project. It has 32MB of flash, 128MB of ram and an amd geode GX. I need some form of BSD on it. I was looking through and I found nanoBSD, tinyBSD, and picoBSD. NanoBSD is too big and picoBSD is too old so I went with tinyBSD.

I built the port and tried out a minimal build. I got errors like:


```
/usr/src/sys/i386/conf/TINYBSD: unknown option "CLK_USE_I8254_CALIBRATION"
```

and:

```
/usr/src/sys/i386/conf/TINYBSD: unknown option "ADAPTIVE_GIANT"
```

So I commented those out in conf/minimal/TINYBSD then I got this:


```
/usr/src/sys/kern/sysv_msg.c:163: error: invalid application of 'sizeof' to incomplete type 'struct freebsd7_msgctl_args' 
/usr/src/sys/kern/sysv_msg.c:163: error: 'freebsd7_msgctl' undeclared here (not in a function)
/usr/src/sys/kern/sysv_msg.c:1446: error: initializer element is not constant
/usr/src/sys/kern/sysv_msg.c:1446: error: (near initialization for 'msgcalls[0]')
cc1: warnings being treated as errors
/usr/src/sys/kern/sysv_msg.c:1490: warning: function declaration isn't a prototype
/usr/src/sys/kern/sysv_msg.c: In function 'freebsd7_msgctl':
/usr/src/sys/kern/sysv_msg.c:1499: error: dereferencing pointer to incomplete type
/usr/src/sys/kern/sysv_msg.c:1499: error: request for member 'cmd' in something not a structure or union
/usr/src/sys/kern/sysv_msg.c:1499: warning: comparison between pointer and integer
/usr/src/sys/kern/sysv_msg.c:1500: error: dereferencing pointer to incomplete type
/usr/src/sys/kern/sysv_msg.c:1500: error: request for member 'buf' in something not a structure or union
/usr/src/sys/kern/sysv_msg.c:1515: error: dereferencing pointer to incomplete type
/usr/src/sys/kern/sysv_msg.c:1515: error: request for member 'msqid' in something not a structure or union
/usr/src/sys/kern/sysv_msg.c:1515: error: dereferencing pointer to incomplete type
/usr/src/sys/kern/sysv_msg.c:1515: error: request for member 'cmd' in something not a structure or union
/usr/src/sys/kern/sysv_msg.c:1515: warning: passing argument 2 of 'kern_msgctl' makes integer from pointer without a cast
/usr/src/sys/kern/sysv_msg.c:1515: warning: passing argument 3 of 'kern_msgctl' makes integer from pointer without a cast
/usr/src/sys/kern/sysv_msg.c:1518: error: dereferencing pointer to incomplete type
/usr/src/sys/kern/sysv_msg.c:1518: error: request for member 'cmd' in something not a structure or union
/usr/src/sys/kern/sysv_msg.c:1518: warning: comparison between pointer and integer
/usr/src/sys/kern/sysv_msg.c:1531: error: dereferencing pointer to incomplete type
/usr/src/sys/kern/sysv_msg.c:1531: error: request for member 'buf' in something not a structure or union
*** Error code 1

Stop in /usr/obj/usr/src/sys/TINYBSD.
*** Error code 1

Stop in /usr/src.
*** Error code 1

Stop in /usr/src.
[root@zerocool /usr/src/tools/tools/tinybsd]#
```

It's probably something really simple, the errors look like I'm missing some files but I'm not really sure how to go about finding out what I'm missing.


----------



## SirDice (Feb 4, 2011)

Can you post that kernel config please?


----------



## opnet (Feb 4, 2011)

```
# $FreeBSD: src/tools/tools/tinybsd/conf/minimal/TINYBSD,v 1.3 2007/08/22 18:45:00 remko Exp $
machine         i386
cpu             I486_CPU
cpu             I586_CPU
cpu             I686_CPU
ident           TINYBSD

# To statically compile in device wiring instead of /boot/device.hints
#hints          "GENERIC.hints"         # Default places to look for devices.

options         SCHED_4BSD              # 4BSD scheduler
options         INET                    # InterNETworking
options         FFS                     # Berkeley Fast Filesystem
options         SOFTUPDATES             # Enable FFS soft updates support
options         UFS_DIRHASH             # Improve performance on big directories
options         MD_ROOT                 # MD is a potential root device
options         PROCFS                  # Process filesystem (requires PSEUDOFS)
options         PSEUDOFS                # Pseudo-filesystem framework
options         GEOM_PART_GPT           # GUID Partition Tables.
options         COMPAT_43               # Compatible with BSD 4.3 [KEEP THIS!]
options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
options         SYSVSHM                 # SYSV-style shared memory
options         SYSVMSG                 # SYSV-style message queues
options         SYSVSEM                 # SYSV-style semaphores
options         _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options         KBD_INSTALL_CDEV        # install a CDEV entry in /dev
options         AHC_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~128k to driver.
options         AHD_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~215k to driver.
#options        ADAPTIVE_GIANT          # Giant mutex is adaptive.

device          apic                    # I/O APIC

device          pci

# ATA and ATAPI devices
device          ata
device          atadisk         # ATA disk drives
options         ATA_STATIC_ID   # Static device numbering

# atkbdc0 controls both the keyboard and the PS/2 mouse
device          atkbdc          # AT keyboard controller
device          atkbd           # AT keyboard
device          psm             # PS/2 mouse

device          vga             # VGA video card driver

#device         splash          # Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device          sc

# Enable this for the pcvt (VT220 compatible) console driver
#device         vt
#options        XSERVER         # support for X server on a vt console
#options        FAT_CURSOR      # start with block cursor

device          agp             # support several AGP chipsets

# Power management support (see NOTES for more options)
#device         apm
# Add suspend/resume support for the i8254.
device          pmtimer

# Pseudo devices.
device          loop            # Network loopback
device          random          # Entropy device
device          ether           # Ethernet support
device          pty             # Pseudo-ttys (telnet etc)
device          md              # Memory "disks"

# CLK_USE_I8254_CALIBRATION causes the calibrated frequency of the i8254
# clock to actually be used.
#options CLK_USE_I8254_CALIBRATION

# CPU_ELAN enables support for AMDs ElanSC520 CPU.
options         CPU_ELAN
options         CPU_SOEKRIS
options         CPU_ELAN_XTAL=32768000
options         CPU_ELAN_PPS

device          bpf
```


----------



## SirDice (Feb 4, 2011)

opnet said:
			
		

> ```
> options         COMPAT_FREEBSD4         # Compatible with FreeBSD4
> ```


This also requires COMPAT_FREEBSD5, 6 and 7.

Unless you plan on running FreeBSD 4.x binaries you can safely remove it.


----------



## opnet (Feb 4, 2011)

Changed COMPAT_FREEBSD4 tp COMPAT_FREEBSD7 and it worked! Thanks.


----------

