maybe_create_devs ()
{
  local DEVDIR=/dev
  # Check for ${DEVDIR} directory
  if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ]
  then 
    # No mercy.  Try to remove.
    rm -f "${DEVDIR}"
    if [ -e "${DEVDIR}" -a ! -d "${DEVDIR}" ]
    then 
      echo
      echo "${DEVDIR} is existant but not a directory."
      echo "Please fix that manually, otherwise you WILL get problems."
      echo
      exit 1
    fi
  fi

  # Create it if necessary
  mkdir -m 755 "${DEVDIR}" 2> /dev/null
  if [ ! -e "${DEVDIR}" ]
  then
    echo
    echo "Creating ${DEVDIR} directory failed."
    echo "Please fix that manually, otherwise you WILL get problems."
    echo
    exit 1
  fi

  # Check for ${DEVDIR}/shm directory (for POSIX semaphores and POSIX shared mem)
  if [ -e "${DEVDIR}/shm" -a ! -d "${DEVDIR}/shm" ]
  then
    # No mercy.  Try to remove.
    rm -f "${DEVDIR}/shm"
    if [ -e "${DEVDIR}/shm" -a ! -d "${DEVDIR}/shm" ]
    then 
      echo
      echo "${DEVDIR}/shm is existant but not a directory."
      echo "POSIX semaphores and POSIX shared memory will not work"
      echo
    fi
  fi

  # Create it if necessary
  if [ ! -e "${DEVDIR}/shm" ]
  then
    mkdir -m 1777 "${DEVDIR}/shm"
    if [ ! -e "${DEVDIR}/shm" ]
    then
      echo
      echo "Creating ${DEVDIR}/shm directory failed."
      echo "POSIX semaphores and POSIX shared memory will not work"
      echo
    fi
  fi

  # Check for ${DEVDIR}/mqueue directory (for POSIX message queues)
  if [ -e "${DEVDIR}/mqueue" -a ! -d "${DEVDIR}/mqueue" ]
  then
    # No mercy.  Try to remove.
    rm -f "${DEVDIR}/mqueue"
    if [ -e "${DEVDIR}/mqueue" -a ! -d "${DEVDIR}/mqueue" ]
    then 
      echo
      echo "${DEVDIR}/mqueue is existant but not a directory."
      echo "POSIX message queues will not work"
      echo
    fi
  fi

  # Create it if necessary
  if [ ! -e "${DEVDIR}/mqueue" ]
  then
    mkdir -m 1777 "${DEVDIR}/mqueue"
    if [ ! -e "${DEVDIR}/mqueue" ]
    then
      echo
      echo "Creating ${DEVDIR}/mqueue directory failed."
      echo "POSIX message queues will not work"
      echo
    fi
  fi
  
  # Install /dev/fd, /dev/std{in,out,err}.  The bash builtin test was compiled
  # to assume these exist, so use /bin/test to really check.
  /usr/bin/test -h /dev/stdin  || ln -sf /proc/self/fd/0 /dev/stdin
  /usr/bin/test -h /dev/stdout || ln -sf /proc/self/fd/1 /dev/stdout
  /usr/bin/test -h /dev/stderr || ln -sf /proc/self/fd/2 /dev/stderr
  /usr/bin/test -h /dev/fd     || ln -sf /proc/self/fd   /dev/fd
}

maybe_create_devs
