Skip to content

Commit

Permalink
Add basic support for FreeBSD
Browse files Browse the repository at this point in the history
  • Loading branch information
ehaupt committed Aug 14, 2023
1 parent e7fc255 commit ac74f95
Show file tree
Hide file tree
Showing 5 changed files with 112 additions and 11 deletions.
4 changes: 4 additions & 0 deletions src/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,11 @@
# packaging script.
-include version.mk

ifeq ($(shell uname),FreeBSD)
SHELL := /usr/local/bin/bash
else
SHELL := /bin/bash
endif

VERSION ?= $(shell git describe --always --tags --candidate=100)

Expand Down
4 changes: 4 additions & 0 deletions src/pacparser.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,10 @@
#include <string.h>
#include <stdlib.h>

#ifdef __FreeBSD__
#include <arpa/inet.h>
#endif

#ifdef XP_UNIX
#include <unistd.h>
#include <sys/socket.h> // for AF_INET
Expand Down
18 changes: 8 additions & 10 deletions src/spidermonkey/js/src/config.mk
Original file line number Diff line number Diff line change
Expand Up @@ -92,17 +92,15 @@ endif
# Virtually all Linux versions are identical.
# Any distinctions are handled in linux.h
ifeq ($(OS_ARCH),Linux)
OS_CONFIG := Linux_All
OS_CONFIG := Linux_All
else ifeq ($(OS_ARCH),dgux)
OS_CONFIG := dgux
else ifeq ($(OS_ARCH),Darwin)
OS_CONFIG := Darwin
else ifeq ($(OS_ARCH),FreeBSD) # Add this line for FreeBSD
OS_CONFIG := FreeBSD
else
ifeq ($(OS_ARCH),dgux)
OS_CONFIG := dgux
else
ifeq ($(OS_ARCH),Darwin)
OS_CONFIG := Darwin
else
OS_CONFIG := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE)
endif
endif
OS_CONFIG := $(OS_ARCH)$(OS_OBJTYPE)$(OS_RELEASE)
endif

ASFLAGS =
Expand Down
95 changes: 95 additions & 0 deletions src/spidermonkey/js/src/config/FreeBSD.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
# -*- Mode: makefile -*-
#
# ***** BEGIN LICENSE BLOCK *****
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
#
# The contents of this file are subject to the Mozilla Public License Version
# 1.1 (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
# http://www.mozilla.org/MPL/
#
# Software distributed under the License is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
# for the specific language governing rights and limitations under the
# License.
#
# The Original Code is Mozilla Communicator client code, released
# March 31, 1998.
#
# The Initial Developer of the Original Code is
# Netscape Communications Corporation.
# Portions created by the Initial Developer are Copyright (C) 1998
# the Initial Developer. All Rights Reserved.
#
# Contributor(s):
#
# Alternatively, the contents of this file may be used under the terms of
# either the GNU General Public License Version 2 or later (the "GPL"), or
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
# in which case the provisions of the GPL or the LGPL are applicable instead
# of those above. If you wish to allow use of your version of this file only
# under the terms of either the GPL or the LGPL, and not to allow others to
# use your version of this file under the terms of the MPL, indicate your
# decision by deleting the provisions above and replace them with the notice
# and other provisions required by the GPL or the LGPL. If you do not delete
# the provisions above, a recipient may use your version of this file under
# the terms of any one of the MPL, the GPL or the LGPL.
#
# ***** END LICENSE BLOCK *****

#
# Config for all versions of FreeBSD
#

CC ?= gcc
CCC ?= g++
CFLAGS += -Wall -Wno-format
OS_CFLAGS = -DXP_UNIX -DSVR4 -DSYSV -D_BSD_SOURCE -DPOSIX_SOURCE -DHAVE_LOCALTIME_R

RANLIB = echo
MKSHLIB = $(LD) -shared $(XMKSHLIBOPTS)

#.c.o:
# $(CC) -c -MD $*.d $(CFLAGS) $<

CPU_ARCH = $(shell uname -m)
# don't filter in x86-64 architecture
ifneq (amd64,$(CPU_ARCH))
ifeq (86,$(findstring 86,$(CPU_ARCH)))
CPU_ARCH = x86
OS_CFLAGS+= -DX86_LINUX

ifeq (gcc, $(CC))
# if using gcc on x86, check version for opt bug
# (http://bugzilla.mozilla.org/show_bug.cgi?id=24892)
GCC_VERSION := $(shell gcc -v 2>&1 | grep version | awk '{ print $$3 }')
GCC_LIST:=$(sort 2.91.66 $(GCC_VERSION) )

ifeq (2.91.66, $(firstword $(GCC_LIST)))
CFLAGS+= -DGCC_OPT_BUG
endif
endif
endif
endif

GFX_ARCH = x

OS_LIBS = -lm -lc

ASFLAGS += -x assembler-with-cpp


# Use the editline library to provide line-editing support.
JS_EDITLINE = 1

ifeq ($(CPU_ARCH),amd64)
# Use VA_COPY() standard macro on x86-64
# FIXME: better use it everywhere
OS_CFLAGS += -DHAVE_VA_COPY -DVA_COPY=va_copy
endif

ifeq ($(CPU_ARCH),amd64)
# We need PIC code for shared libraries
# FIXME: better patch rules.mk & fdlibm/Makefile*
OS_CFLAGS += -DPIC -fPIC
endif
2 changes: 1 addition & 1 deletion tests/runtests.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash
#!/usr/bin/env bash

pushd $(dirname $0) > /dev/null; script_dir=$PWD; popd > /dev/null

Expand Down

0 comments on commit ac74f95

Please sign in to comment.