Description: <short summary of the patch>
 TODO: Put a short summary on the line above and replace this paragraph
 with a longer explanation of this change. Complete the meta-information
 with other relevant fields (see below for details). To make it easier, the
 information below has been extracted from the changelog. Adjust it or drop
 it.
 .
 postgresql-11 (11.7-0+deb10u1.lnd.1) buster-security; urgency=medium
 .
   * change for loongarch.
Author: Jianjun Han <hanjianjun@loongson.cn>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: https://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: 2021-01-16

--- postgresql-11-11.7.orig/config/config.sub
+++ postgresql-11-11.7/config/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-05-24'
+timestamp='2018-02-22'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -110,455 +110,131 @@ case $# in
     exit 1;;
 esac
 
-# Split fields of configuration type
-IFS="-" read -r field1 field2 field3 field4 <<EOF
-$1
-EOF
-
-# Separate into logical components for further validation
-case $1 in
-	*-*-*-*-*)
-		echo Invalid configuration \`"$1"\': more than four components >&2
-		exit 1
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
+  linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
+  kopensolaris*-gnu* | cloudabi*-eabi* | \
+  storm-chaos* | os2-emx* | rtmk-nova*)
+    os=-$maybe_os
+    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+    ;;
+  android-linux)
+    os=-linux-android
+    basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown
+    ;;
+  *)
+    basic_machine=`echo "$1" | sed 's/-[^-]*$//'`
+    if [ "$basic_machine" != "$1" ]
+    then os=`echo "$1" | sed 's/.*-/-/'`
+    else os=; fi
+    ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work.  We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+	-sun*os*)
+		# Prevent following clause from handling this invalid input.
 		;;
-	*-*-*-*)
-		basic_machine=$field1-$field2
-		os=$field3-$field4
+	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+	-apple | -axis | -knuth | -cray | -microblaze* | loongson)
+		os=
+		basic_machine=$1
+		;;
+	-bluegene*)
+		os=-cnk
+		;;
+	-sim | -cisco | -oki | -wec | -winbond)
+		os=
+		basic_machine=$1
+		;;
+	-scout)
+		;;
+	-wrs)
+		os=-vxworks
+		basic_machine=$1
+		;;
+	-chorusos*)
+		os=-chorusos
+		basic_machine=$1
+		;;
+	-chorusrdb)
+		os=-chorusrdb
+		basic_machine=$1
+		;;
+	-hiux*)
+		os=-hiuxwe2
+		;;
+	-sco6)
+		os=-sco5v6
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco5)
+		os=-sco3.2v5
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco4)
+		os=-sco3.2v4
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
-	*-*-*)
-		# Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
-		# parts
-		maybe_os=$field2-$field3
-		case $maybe_os in
-			nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
-			| linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
-			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
-			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
-			| storm-chaos* | os2-emx* | rtmk-nova*)
-				basic_machine=$field1
-				os=$maybe_os
-				;;
-			android-linux)
-				basic_machine=$field1-unknown
-				os=linux-android
-				;;
-			*)
-				basic_machine=$field1-$field2
-				os=$field3
-				;;
-		esac
+	-sco3.2.[4-9]*)
+		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
-	*-*)
-		# Second component is usually, but not always the OS
-		case $field2 in
-			# Prevent following clause from handling this valid os
-			sun*os*)
-				basic_machine=$field1
-				os=$field2
-				;;
-			# Manufacturers
-			dec* | mips* | sequent* | encore* | pc532* | sgi* | sony* \
-			| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
-			| unicom* | ibm* | next | hp | isi* | apollo | altos* \
-			| convergent* | ncr* | news | 32* | 3600* | 3100* | hitachi* \
-			| c[123]* | convex* | sun | crds | omron* | dg | ultra | tti* \
-			| harris | dolphin | highlevel | gould | cbm | ns | masscomp \
-			| apple | axis | knuth | cray | microblaze* \
-			| sim | cisco | oki | wec | wrs | winbond)
-				basic_machine=$field1-$field2
-				os=
-				;;
-			*)
-				basic_machine=$field1
-				os=$field2
-				;;
-		esac
+	-sco3.2v[4-9]*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
 		;;
-	*)
-		# Convert single-component short-hands not valid as part of
-		# multi-component configurations.
-		case $field1 in
-			386bsd)
-				basic_machine=i386-pc
-				os=bsd
-				;;
-			a29khif)
-				basic_machine=a29k-amd
-				os=udi
-				;;
-			adobe68k)
-				basic_machine=m68010-adobe
-				os=scout
-				;;
-			am29k)
-				basic_machine=a29k-none
-				os=bsd
-				;;
-			amdahl)
-				basic_machine=580-amdahl
-				os=sysv
-				;;
-			amigaos | amigados)
-				basic_machine=m68k-unknown
-				os=amigaos
-				;;
-			amigaunix | amix)
-				basic_machine=m68k-unknown
-				os=sysv4
-				;;
-			apollo68)
-				basic_machine=m68k-apollo
-				os=sysv
-				;;
-			apollo68bsd)
-				basic_machine=m68k-apollo
-				os=bsd
-				;;
-			aros)
-				basic_machine=i386-pc
-				os=aros
-				;;
-			aux)
-				basic_machine=m68k-apple
-				os=aux
-				;;
-			balance)
-				basic_machine=ns32k-sequent
-				os=dynix
-				;;
-			blackfin)
-				basic_machine=bfin-unknown
-				os=linux
-				;;
-			cegcc)
-				basic_machine=arm-unknown
-				os=cegcc
-				;;
-			cray)
-				basic_machine=j90-cray
-				os=unicos
-				;;
-			craynv)
-				basic_machine=craynv-cray
-				os=unicosmp
-				;;
-			delta88)
-				basic_machine=m88k-motorola
-				os=sysv3
-				;;
-			dicos)
-				basic_machine=i686-pc
-				os=dicos
-				;;
-			djgpp)
-				basic_machine=i586-pc
-				os=msdosdjgpp
-				;;
-			ebmon29k)
-				basic_machine=a29k-amd
-				os=ebmon
-				;;
-			es1800 | OSE68k | ose68k | ose | OSE)
-				basic_machine=m68k-ericsson
-				os=ose
-				;;
-			gmicro)
-				basic_machine=tron-gmicro
-				os=sysv
-				;;
-			go32)
-				basic_machine=i386-pc
-				os=go32
-				;;
-			h8300hms)
-				basic_machine=h8300-hitachi
-				os=hms
-				;;
-			h8300xray)
-				basic_machine=h8300-hitachi
-				os=xray
-				;;
-			h8500hms)
-				basic_machine=h8500-hitachi
-				os=hms
-				;;
-			harris)
-				basic_machine=m88k-harris
-				os=sysv3
-				;;
-			hp300bsd)
-				basic_machine=m68k-hp
-				os=bsd
-				;;
-			hp300hpux)
-				basic_machine=m68k-hp
-				os=hpux
-				;;
-			hppaosf)
-				basic_machine=hppa1.1-hp
-				os=osf
-				;;
-			hppro)
-				basic_machine=hppa1.1-hp
-				os=proelf
-				;;
-			i386mach)
-				basic_machine=i386-mach
-				os=mach
-				;;
-			vsta)
-				basic_machine=i386-unknown
-				os=vsta
-				;;
-			isi68 | isi)
-				basic_machine=m68k-isi
-				os=sysv
-				;;
-			m68knommu)
-				basic_machine=m68k-unknown
-				os=linux
-				;;
-			magnum | m3230)
-				basic_machine=mips-mips
-				os=sysv
-				;;
-			merlin)
-				basic_machine=ns32k-utek
-				os=sysv
-				;;
-			mingw64)
-				basic_machine=x86_64-pc
-				os=mingw64
-				;;
-			mingw32)
-				basic_machine=i686-pc
-				os=mingw32
-				;;
-			mingw32ce)
-				basic_machine=arm-unknown
-				os=mingw32ce
-				;;
-			monitor)
-				basic_machine=m68k-rom68k
-				os=coff
-				;;
-			morphos)
-				basic_machine=powerpc-unknown
-				os=morphos
-				;;
-			moxiebox)
-				basic_machine=moxie-unknown
-				os=moxiebox
-				;;
-			msdos)
-				basic_machine=i386-pc
-				os=msdos
-				;;
-			msys)
-				basic_machine=i686-pc
-				os=msys
-				;;
-			mvs)
-				basic_machine=i370-ibm
-				os=mvs
-				;;
-			nacl)
-				basic_machine=le32-unknown
-				os=nacl
-				;;
-			ncr3000)
-				basic_machine=i486-ncr
-				os=sysv4
-				;;
-			netbsd386)
-				basic_machine=i386-unknown
-				os=netbsd
-				;;
-			netwinder)
-				basic_machine=armv4l-rebel
-				os=linux
-				;;
-			news | news700 | news800 | news900)
-				basic_machine=m68k-sony
-				os=newsos
-				;;
-			news1000)
-				basic_machine=m68030-sony
-				os=newsos
-				;;
-			necv70)
-				basic_machine=v70-nec
-				os=sysv
-				;;
-			nh3000)
-				basic_machine=m68k-harris
-				os=cxux
-				;;
-			nh[45]000)
-				basic_machine=m88k-harris
-				os=cxux
-				;;
-			nindy960)
-				basic_machine=i960-intel
-				os=nindy
-				;;
-			mon960)
-				basic_machine=i960-intel
-				os=mon960
-				;;
-			nonstopux)
-				basic_machine=mips-compaq
-				os=nonstopux
-				;;
-			os400)
-				basic_machine=powerpc-ibm
-				os=os400
-				;;
-			OSE68000 | ose68000)
-				basic_machine=m68000-ericsson
-				os=ose
-				;;
-			os68k)
-				basic_machine=m68k-none
-				os=os68k
-				;;
-			paragon)
-				basic_machine=i860-intel
-				os=osf
-				;;
-			parisc)
-				basic_machine=hppa-unknown
-				os=linux
-				;;
-			pw32)
-				basic_machine=i586-unknown
-				os=pw32
-				;;
-			rdos | rdos64)
-				basic_machine=x86_64-pc
-				os=rdos
-				;;
-			rdos32)
-				basic_machine=i386-pc
-				os=rdos
-				;;
-			rom68k)
-				basic_machine=m68k-rom68k
-				os=coff
-				;;
-			sa29200)
-				basic_machine=a29k-amd
-				os=udi
-				;;
-			sei)
-				basic_machine=mips-sei
-				os=seiux
-				;;
-			sps7)
-				basic_machine=m68k-bull
-				os=sysv2
-				;;
-			stratus)
-				basic_machine=i860-stratus
-				os=sysv4
-				;;
-			sun2os3)
-				basic_machine=m68000-sun
-				os=sunos3
-				;;
-			sun2os4)
-				basic_machine=m68000-sun
-				os=sunos4
-				;;
-			sun3os3)
-				basic_machine=m68k-sun
-				os=sunos3
-				;;
-			sun3os4)
-				basic_machine=m68k-sun
-				os=sunos4
-				;;
-			sun4os3)
-				basic_machine=sparc-sun
-				os=sunos3
-				;;
-			sun4os4)
-				basic_machine=sparc-sun
-				os=sunos4
-				;;
-			sun4sol2)
-				basic_machine=sparc-sun
-				os=solaris2
-				;;
-			sv1)
-				basic_machine=sv1-cray
-				os=unicos
-				;;
-			symmetry)
-				basic_machine=i386-sequent
-				os=dynix
-				;;
-			t3e)
-				basic_machine=alphaev5-cray
-				os=unicos
-				;;
-			t90)
-				basic_machine=t90-cray
-				os=unicos
-				;;
-			toad1)
-				basic_machine=pdp10-xkl
-				os=tops20
-				;;
-			tpf)
-				basic_machine=s390x-ibm
-				os=tpf
-				;;
-			udi29k)
-				basic_machine=a29k-amd
-				os=udi
-				;;
-			ultra3)
-				basic_machine=a29k-nyu
-				os=sym1
-				;;
-			v810 | necv810)
-				basic_machine=v810-nec
-				os=none
-				;;
-			vaxv)
-				basic_machine=vax-dec
-				os=sysv
-				;;
-			vms)
-				basic_machine=vax-dec
-				os=vms
-				;;
-			vxworks960)
-				basic_machine=i960-wrs
-				os=vxworks
-				;;
-			vxworks68)
-				basic_machine=m68k-wrs
-				os=vxworks
-				;;
-			vxworks29k)
-				basic_machine=a29k-wrs
-				os=vxworks
-				;;
-			xbox)
-				basic_machine=i686-pc
-				os=mingw32
-				;;
-			ymp)
-				basic_machine=ymp-cray
-				os=unicos
-				;;
-			*)
-				basic_machine=$1
-				os=
-				;;
-		esac
+	-sco5v6*)
+		# Don't forget version if it is 3.2v4 or newer.
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
+		;;
+	-sco*)
+		os=-sco3.2v2
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
+		;;
+	-udk*)
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
+		;;
+	-isc)
+		os=-isc2.2
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
+		;;
+	-clix*)
+		basic_machine=clipper-intergraph
+		;;
+	-isc*)
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'`
+		;;
+	-lynx*178)
+		os=-lynxos178
+		;;
+	-lynx*5)
+		os=-lynxos5
+		;;
+	-lynx*)
+		os=-lynxos
+		;;
+	-ptx*)
+		basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'`
+		;;
+	-psos*)
+		os=-psos
+		;;
+	-mint | -mint[0-9]*)
+		basic_machine=m68k-atari
+		os=-mint
 		;;
 esac
 
@@ -573,12 +249,12 @@ case $basic_machine in
 	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
 	| am33_2.0 \
 	| arc | arceb \
-	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | armv[78][arm] \
+	| arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
 	| avr | avr32 \
 	| ba \
 	| be32 | be64 \
 	| bfin \
-	| c4x | c8051 | clipper | csky \
+	| c4x | c8051 | clipper \
 	| d10v | d30v | dlx | dsp16xx \
 	| e2k | epiphany \
 	| fido | fr30 | frv | ft32 \
@@ -616,8 +292,8 @@ case $basic_machine in
 	| moxie \
 	| mt \
 	| msp430 \
+	| loongarch32 | loongarch64 \
 	| nds32 | nds32le | nds32be \
-	| nfp \
 	| nios | nios2 | nios2eb | nios2el \
 	| ns16k | ns32k \
 	| open8 | or1k | or1knd | or32 \
@@ -656,23 +332,20 @@ case $basic_machine in
 		;;
 	m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip)
 		basic_machine=$basic_machine-unknown
-		os=${os:-none}
+		os=-none
 		;;
 	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65)
 		;;
-	m9s12z | m68hcs12z | hcs12z | s12z)
-		basic_machine=s12z-unknown
-		os=${os:-none}
-		;;
 	ms1)
 		basic_machine=mt-unknown
 		;;
+
 	strongarm | thumb | xscale)
 		basic_machine=arm-unknown
 		;;
 	xgate)
 		basic_machine=$basic_machine-unknown
-		os=${os:-none}
+		os=-none
 		;;
 	xscaleeb)
 		basic_machine=armeb-unknown
@@ -688,6 +361,11 @@ case $basic_machine in
 	i*86 | x86_64)
 	  basic_machine=$basic_machine-pc
 	  ;;
+	# Object if more than one company name word.
+	*-*-*)
+		echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2
+		exit 1
+		;;
 	# Recognize the basic CPU types with company name.
 	580-* \
 	| a29k-* \
@@ -701,7 +379,7 @@ case $basic_machine in
 	| be32-* | be64-* \
 	| bfin-* | bs2000-* \
 	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
+	| c8051-* | clipper-* | craynv-* | cydra-* \
 	| d10v-* | d30v-* | dlx-* \
 	| e2k-* | elxsi-* \
 	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
@@ -712,6 +390,7 @@ case $basic_machine in
 	| ip2k-* | iq2000-* \
 	| k1om-* \
 	| le32-* | le64-* \
+	| loongarch32-* | loongarch64-* \
 	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
@@ -742,7 +421,6 @@ case $basic_machine in
 	| mt-* \
 	| msp430-* \
 	| nds32-* | nds32le-* | nds32be-* \
-	| nfp-* \
 	| nios-* | nios2-* | nios2eb-* | nios2el-* \
 	| none-* | np1-* | ns16k-* | ns32k-* \
 	| open8-* \
@@ -780,40 +458,92 @@ case $basic_machine in
 		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
+	386bsd)
+		basic_machine=i386-pc
+		os=-bsd
+		;;
 	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
 		basic_machine=m68000-att
 		;;
 	3b*)
 		basic_machine=we32k-att
 		;;
+	a29khif)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
 	abacus)
 		basic_machine=abacus-unknown
 		;;
+	adobe68k)
+		basic_machine=m68010-adobe
+		os=-scout
+		;;
 	alliant | fx80)
 		basic_machine=fx80-alliant
 		;;
 	altos | altos3068)
 		basic_machine=m68k-altos
 		;;
+	am29k)
+		basic_machine=a29k-none
+		os=-bsd
+		;;
 	amd64)
 		basic_machine=x86_64-pc
 		;;
 	amd64-*)
 		basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
+	amdahl)
+		basic_machine=580-amdahl
+		os=-sysv
+		;;
 	amiga | amiga-*)
 		basic_machine=m68k-unknown
 		;;
+	amigaos | amigados)
+		basic_machine=m68k-unknown
+		os=-amigaos
+		;;
+	amigaunix | amix)
+		basic_machine=m68k-unknown
+		os=-sysv4
+		;;
+	apollo68)
+		basic_machine=m68k-apollo
+		os=-sysv
+		;;
+	apollo68bsd)
+		basic_machine=m68k-apollo
+		os=-bsd
+		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
 	asmjs)
 		basic_machine=asmjs-unknown
 		;;
+	aux)
+		basic_machine=m68k-apple
+		os=-aux
+		;;
+	balance)
+		basic_machine=ns32k-sequent
+		os=-dynix
+		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
 	blackfin-*)
 		basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		os=linux
+		os=-linux
 		;;
 	bluegene*)
 		basic_machine=powerpc-ibm
-		os=cnk
+		os=-cnk
 		;;
 	c54x-*)
 		basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
@@ -826,31 +556,43 @@ case $basic_machine in
 		;;
 	c90)
 		basic_machine=c90-cray
-		os=${os:-unicos}
+		os=-unicos
+		;;
+	cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
 		;;
 	convex-c1)
 		basic_machine=c1-convex
-		os=bsd
+		os=-bsd
 		;;
 	convex-c2)
 		basic_machine=c2-convex
-		os=bsd
+		os=-bsd
 		;;
 	convex-c32)
 		basic_machine=c32-convex
-		os=bsd
+		os=-bsd
 		;;
 	convex-c34)
 		basic_machine=c34-convex
-		os=bsd
+		os=-bsd
 		;;
 	convex-c38)
 		basic_machine=c38-convex
-		os=bsd
+		os=-bsd
+		;;
+	cray | j90)
+		basic_machine=j90-cray
+		os=-unicos
+		;;
+	craynv)
+		basic_machine=craynv-cray
+		os=-unicosmp
 		;;
 	cr16 | cr16-*)
 		basic_machine=cr16-unknown
-		os=${os:-elf}
+		os=-elf
 		;;
 	crds | unos)
 		basic_machine=m68k-crds
@@ -863,7 +605,7 @@ case $basic_machine in
 		;;
 	crx)
 		basic_machine=crx-unknown
-		os=${os:-elf}
+		os=-elf
 		;;
 	da30 | da30-*)
 		basic_machine=m68k-da30
@@ -873,23 +615,35 @@ case $basic_machine in
 		;;
 	decsystem10* | dec10*)
 		basic_machine=pdp10-dec
-		os=tops10
+		os=-tops10
 		;;
 	decsystem20* | dec20*)
 		basic_machine=pdp10-dec
-		os=tops20
+		os=-tops20
 		;;
 	delta | 3300 | motorola-3300 | motorola-delta \
 	      | 3300-motorola | delta-motorola)
 		basic_machine=m68k-motorola
 		;;
+	delta88)
+		basic_machine=m88k-motorola
+		os=-sysv3
+		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
+	djgpp)
+		basic_machine=i586-pc
+		os=-msdosdjgpp
+		;;
 	dpx20 | dpx20-*)
 		basic_machine=rs6000-bull
-		os=${os:-bosx}
+		os=-bosx
 		;;
 	dpx2*)
 		basic_machine=m68k-bull
-		os=sysv3
+		os=-sysv3
 		;;
 	e500v[12])
 		basic_machine=powerpc-unknown
@@ -899,12 +653,20 @@ case $basic_machine in
 		basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		os=$os"spe"
 		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
+	ebmon29k)
+		basic_machine=a29k-amd
+		os=-ebmon
 		;;
 	elxsi)
 		basic_machine=elxsi-elxsi
-		os=${os:-bsd}
+		os=-bsd
+		;;
+	encore | umax | mmax)
+		basic_machine=ns32k-encore
+		;;
+	es1800 | OSE68k | ose68k | ose | OSE)
+		basic_machine=m68k-ericsson
+		os=-ose
 		;;
 	fx2800)
 		basic_machine=i860-alliant
@@ -912,13 +674,45 @@ case $basic_machine in
 	genix)
 		basic_machine=ns32k-ns
 		;;
+	gmicro)
+		basic_machine=tron-gmicro
+		os=-sysv
+		;;
+	go32)
+		basic_machine=i386-pc
+		os=-go32
+		;;
 	h3050r* | hiux*)
 		basic_machine=hppa1.1-hitachi
-		os=hiuxwe2
+		os=-hiuxwe2
+		;;
+	h8300hms)
+		basic_machine=h8300-hitachi
+		os=-hms
+		;;
+	h8300xray)
+		basic_machine=h8300-hitachi
+		os=-xray
+		;;
+	h8500hms)
+		basic_machine=h8500-hitachi
+		os=-hms
+		;;
+	harris)
+		basic_machine=m88k-harris
+		os=-sysv3
 		;;
 	hp300-*)
 		basic_machine=m68k-hp
 		;;
+	hp300bsd)
+		basic_machine=m68k-hp
+		os=-bsd
+		;;
+	hp300hpux)
+		basic_machine=m68k-hp
+		os=-hpux
+		;;
 	hp3k9[0-9][0-9] | hp9[0-9][0-9])
 		basic_machine=hppa1.0-hp
 		;;
@@ -948,55 +742,95 @@ case $basic_machine in
 	hp9k8[0-9][0-9] | hp8[0-9][0-9])
 		basic_machine=hppa1.0-hp
 		;;
+	hppaosf)
+		basic_machine=hppa1.1-hp
+		os=-osf
+		;;
+	hppro)
+		basic_machine=hppa1.1-hp
+		os=-proelf
+		;;
 	i370-ibm* | ibm*)
 		basic_machine=i370-ibm
 		;;
 	i*86v32)
 		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-		os=sysv32
+		os=-sysv32
 		;;
 	i*86v4*)
 		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-		os=sysv4
+		os=-sysv4
 		;;
 	i*86v)
 		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-		os=sysv
+		os=-sysv
 		;;
 	i*86sol2)
 		basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
-		os=solaris2
+		os=-solaris2
 		;;
-	j90 | j90-cray)
-		basic_machine=j90-cray
-		os=${os:-unicos}
+	i386mach)
+		basic_machine=i386-mach
+		os=-mach
+		;;
+	vsta)
+		basic_machine=i386-unknown
+		os=-vsta
 		;;
 	iris | iris4d)
 		basic_machine=mips-sgi
 		case $os in
-		    irix*)
+		    -irix*)
 			;;
 		    *)
-			os=irix4
+			os=-irix4
 			;;
 		esac
 		;;
+	isi68 | isi)
+		basic_machine=m68k-isi
+		os=-sysv
+		;;
 	leon-*|leon[3-9]-*)
 		basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
 		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
 	m68knommu-*)
 		basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		os=linux
+		os=-linux
+		;;
+	magnum | m3230)
+		basic_machine=mips-mips
+		os=-sysv
+		;;
+	merlin)
+		basic_machine=ns32k-utek
+		os=-sysv
 		;;
 	microblaze*)
 		basic_machine=microblaze-xilinx
 		;;
+	mingw64)
+		basic_machine=x86_64-pc
+		os=-mingw64
+		;;
+	mingw32)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
+	mingw32ce)
+		basic_machine=arm-unknown
+		os=-mingw32ce
+		;;
 	miniframe)
 		basic_machine=m68000-convergent
 		;;
-	*mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
+	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
 		basic_machine=m68k-atari
-		os=mint
+		os=-mint
 		;;
 	mips3*-*)
 		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
@@ -1004,26 +838,98 @@ case $basic_machine in
 	mips3*)
 		basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown
 		;;
+	monitor)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
+	morphos)
+		basic_machine=powerpc-unknown
+		os=-morphos
+		;;
+	moxiebox)
+		basic_machine=moxie-unknown
+		os=-moxiebox
+		;;
+	msdos)
+		basic_machine=i386-pc
+		os=-msdos
+		;;
 	ms1-*)
 		basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
 		;;
+	msys)
+		basic_machine=i686-pc
+		os=-msys
+		;;
+	mvs)
+		basic_machine=i370-ibm
+		os=-mvs
+		;;
+	nacl)
+		basic_machine=le32-unknown
+		os=-nacl
+		;;
+	ncr3000)
+		basic_machine=i486-ncr
+		os=-sysv4
+		;;
+	netbsd386)
+		basic_machine=i386-unknown
+		os=-netbsd
+		;;
+	netwinder)
+		basic_machine=armv4l-rebel
+		os=-linux
+		;;
+	news | news700 | news800 | news900)
+		basic_machine=m68k-sony
+		os=-newsos
+		;;
+	news1000)
+		basic_machine=m68030-sony
+		os=-newsos
+		;;
 	news-3600 | risc-news)
 		basic_machine=mips-sony
-		os=newsos
+		os=-newsos
+		;;
+	necv70)
+		basic_machine=v70-nec
+		os=-sysv
 		;;
 	next | m*-next)
 		basic_machine=m68k-next
 		case $os in
-		    nextstep* )
+		    -nextstep* )
 			;;
-		    ns2*)
-		      os=nextstep2
+		    -ns2*)
+		      os=-nextstep2
 			;;
 		    *)
-		      os=nextstep3
+		      os=-nextstep3
 			;;
 		esac
 		;;
+	nh3000)
+		basic_machine=m68k-harris
+		os=-cxux
+		;;
+	nh[45]000)
+		basic_machine=m88k-harris
+		os=-cxux
+		;;
+	nindy960)
+		basic_machine=i960-intel
+		os=-nindy
+		;;
+	mon960)
+		basic_machine=i960-intel
+		os=-mon960
+		;;
+	nonstopux)
+		basic_machine=mips-compaq
+		os=-nonstopux
+		;;
 	np1)
 		basic_machine=np1-gould
 		;;
@@ -1044,18 +950,38 @@ case $basic_machine in
 		;;
 	op50n-* | op60c-*)
 		basic_machine=hppa1.1-oki
-		os=proelf
+		os=-proelf
 		;;
 	openrisc | openrisc-*)
 		basic_machine=or32-unknown
 		;;
+	os400)
+		basic_machine=powerpc-ibm
+		os=-os400
+		;;
+	OSE68000 | ose68000)
+		basic_machine=m68000-ericsson
+		os=-ose
+		;;
+	os68k)
+		basic_machine=m68k-none
+		os=-os68k
+		;;
 	pa-hitachi)
 		basic_machine=hppa1.1-hitachi
-		os=hiuxwe2
+		os=-hiuxwe2
+		;;
+	paragon)
+		basic_machine=i860-intel
+		os=-osf
+		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
 		;;
 	parisc-*)
 		basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-		os=linux
+		os=-linux
 		;;
 	pbd)
 		basic_machine=sparc-tti
@@ -1125,6 +1051,22 @@ case $basic_machine in
 	ps2)
 		basic_machine=i386-ibm
 		;;
+	pw32)
+		basic_machine=i586-unknown
+		os=-pw32
+		;;
+	rdos | rdos64)
+		basic_machine=x86_64-pc
+		os=-rdos
+		;;
+	rdos32)
+		basic_machine=i386-pc
+		os=-rdos
+		;;
+	rom68k)
+		basic_machine=m68k-rom68k
+		os=-coff
+		;;
 	rm[46]00)
 		basic_machine=mips-siemens
 		;;
@@ -1137,6 +1079,10 @@ case $basic_machine in
 	s390x | s390x-*)
 		basic_machine=s390x-ibm
 		;;
+	sa29200)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
 	sb1)
 		basic_machine=mipsisa64sb1-unknown
 		;;
@@ -1145,7 +1091,11 @@ case $basic_machine in
 		;;
 	sde)
 		basic_machine=mipsisa32-sde
-		os=${os:-elf}
+		os=-elf
+		;;
+	sei)
+		basic_machine=mips-sei
+		os=-seiux
 		;;
 	sequent)
 		basic_machine=i386-sequent
@@ -1155,7 +1105,11 @@ case $basic_machine in
 		;;
 	simso-wrs)
 		basic_machine=sparclite-wrs
-		os=vxworks
+		os=-vxworks
+		;;
+	sps7)
+		basic_machine=m68k-bull
+		os=-sysv2
 		;;
 	spur)
 		basic_machine=spur-unknown
@@ -1163,12 +1117,44 @@ case $basic_machine in
 	st2000)
 		basic_machine=m68k-tandem
 		;;
+	stratus)
+		basic_machine=i860-stratus
+		os=-sysv4
+		;;
 	strongarm-* | thumb-*)
 		basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
 		;;
 	sun2)
 		basic_machine=m68000-sun
 		;;
+	sun2os3)
+		basic_machine=m68000-sun
+		os=-sunos3
+		;;
+	sun2os4)
+		basic_machine=m68000-sun
+		os=-sunos4
+		;;
+	sun3os3)
+		basic_machine=m68k-sun
+		os=-sunos3
+		;;
+	sun3os4)
+		basic_machine=m68k-sun
+		os=-sunos4
+		;;
+	sun4os3)
+		basic_machine=sparc-sun
+		os=-sunos3
+		;;
+	sun4os4)
+		basic_machine=sparc-sun
+		os=-sunos4
+		;;
+	sun4sol2)
+		basic_machine=sparc-sun
+		os=-solaris2
+		;;
 	sun3 | sun3-*)
 		basic_machine=m68k-sun
 		;;
@@ -1178,9 +1164,25 @@ case $basic_machine in
 	sun386 | sun386i | roadrunner)
 		basic_machine=i386-sun
 		;;
+	sv1)
+		basic_machine=sv1-cray
+		os=-unicos
+		;;
+	symmetry)
+		basic_machine=i386-sequent
+		os=-dynix
+		;;
+	t3e)
+		basic_machine=alphaev5-cray
+		os=-unicos
+		;;
+	t90)
+		basic_machine=t90-cray
+		os=-unicos
+		;;
 	tile*)
 		basic_machine=$basic_machine-unknown
-		os=linux-gnu
+		os=-linux-gnu
 		;;
 	tx39)
 		basic_machine=mipstx39-unknown
@@ -1188,32 +1190,80 @@ case $basic_machine in
 	tx39el)
 		basic_machine=mipstx39el-unknown
 		;;
+	toad1)
+		basic_machine=pdp10-xkl
+		os=-tops20
+		;;
 	tower | tower-32)
 		basic_machine=m68k-ncr
 		;;
+	tpf)
+		basic_machine=s390x-ibm
+		os=-tpf
+		;;
+	udi29k)
+		basic_machine=a29k-amd
+		os=-udi
+		;;
+	ultra3)
+		basic_machine=a29k-nyu
+		os=-sym1
+		;;
+	v810 | necv810)
+		basic_machine=v810-nec
+		os=-none
+		;;
+	vaxv)
+		basic_machine=vax-dec
+		os=-sysv
+		;;
+	vms)
+		basic_machine=vax-dec
+		os=-vms
+		;;
 	vpp*|vx|vx-*)
 		basic_machine=f301-fujitsu
 		;;
+	vxworks960)
+		basic_machine=i960-wrs
+		os=-vxworks
+		;;
+	vxworks68)
+		basic_machine=m68k-wrs
+		os=-vxworks
+		;;
+	vxworks29k)
+		basic_machine=a29k-wrs
+		os=-vxworks
+		;;
 	w65*)
 		basic_machine=w65-wdc
-		os=none
+		os=-none
 		;;
 	w89k-*)
 		basic_machine=hppa1.1-winbond
-		os=proelf
+		os=-proelf
 		;;
 	x64)
 		basic_machine=x86_64-pc
 		;;
+	xbox)
+		basic_machine=i686-pc
+		os=-mingw32
+		;;
 	xps | xps100)
 		basic_machine=xps100-honeywell
 		;;
 	xscale-* | xscalee[bl]-*)
 		basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
 		;;
+	ymp)
+		basic_machine=ymp-cray
+		os=-unicos
+		;;
 	none)
 		basic_machine=none-none
-		os=${os:-none}
+		os=-none
 		;;
 
 # Here we handle the default manufacturer of certain CPU types.  It is in
@@ -1286,245 +1336,199 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if [ x$os != x ]
+if [ x"$os" != x"" ]
 then
 case $os in
 	# First match some system type aliases that might get confused
 	# with valid system types.
-	# solaris* is a basic system type, with this one exception.
-	auroraux)
-		os=auroraux
+	# -solaris* is a basic system type, with this one exception.
+	-auroraux)
+		os=-auroraux
 		;;
-	bluegene*)
-		os=cnk
-		;;
-	solaris1 | solaris1.*)
+	-solaris1 | -solaris1.*)
 		os=`echo $os | sed -e 's|solaris1|sunos4|'`
 		;;
-	solaris)
-		os=solaris2
+	-solaris)
+		os=-solaris2
 		;;
-	unixware*)
-		os=sysv4.2uw
+	-unixware*)
+		os=-sysv4.2uw
 		;;
-	gnu/linux*)
+	-gnu/linux*)
 		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
 		;;
 	# es1800 is here to avoid being matched by es* (a different OS)
-	es1800*)
-		os=ose
-		;;
-	# Some version numbers need modification
-	chorusos*)
-		os=chorusos
-		;;
-	isc)
-		os=isc2.2
-		;;
-	sco6)
-		os=sco5v6
-		;;
-	sco5)
-		os=sco3.2v5
-		;;
-	sco4)
-		os=sco3.2v4
-		;;
-	sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		;;
-	sco3.2v[4-9]* | sco5v6*)
-		# Don't forget version if it is 3.2v4 or newer.
-		;;
-	scout)
-		# Don't match below
-		;;
-	sco*)
-		os=sco3.2v2
-		;;
-	psos*)
-		os=psos
+	-es1800*)
+		os=-ose
 		;;
 	# Now accept the basic system types.
 	# The portable systems comes first.
 	# Each alternative MUST end in a * to match a version number.
-	# sysv* is not here because it comes later, after sysvr4.
-	gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
-	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
-	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
-	     | sym* | kopensolaris* | plan9* \
-	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
-	     | aos* | aros* | cloudabi* | sortix* \
-	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
-	     | clix* | riscos* | uniplus* | iris* | rtu* | xenix* \
-	     | knetbsd* | mirbsd* | netbsd* \
-	     | bitrig* | openbsd* | solidbsd* | libertybsd* \
-	     | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
-	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
-	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
-	     | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
-	     | chorusrdb* | cegcc* | glidix* \
-	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
-	     | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
-	     | linux-newlib* | linux-musl* | linux-uclibc* \
-	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
-	     | interix* | uwin* | mks* | rhapsody* | darwin* \
-	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
-	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
-	     | os2* | vos* | palmos* | uclinux* | nucleus* \
-	     | morphos* | superux* | rtmk* | windiss* \
-	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
-	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
-	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
-	     | midnightbsd*)
+	# -sysv* is not here because it comes later, after sysvr4.
+	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
+	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
+	      | -sym* | -kopensolaris* | -plan9* \
+	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+	      | -aos* | -aros* | -cloudabi* | -sortix* \
+	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+	      | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \
+	      | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
+	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+	      | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \
+	      | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+	      | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+	      | -linux-newlib* | -linux-musl* | -linux-uclibc* \
+	      | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
+	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \
+	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+	      | -morphos* | -superux* | -rtmk* | -windiss* \
+	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
+	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+	      | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \
+	      | -midnightbsd*)
 	# Remember, each alternative MUST END IN *, to match a version number.
 		;;
-	qnx*)
+	-qnx*)
 		case $basic_machine in
 		    x86-* | i*86-*)
 			;;
 		    *)
-			os=nto-$os
+			os=-nto$os
 			;;
 		esac
 		;;
-	hiux*)
-		os=hiuxwe2
+	-nto-qnx*)
 		;;
-	nto-qnx*)
-		;;
-	nto*)
+	-nto*)
 		os=`echo $os | sed -e 's|nto|nto-qnx|'`
 		;;
-	sim | xray | os68k* | v88r* \
-	    | windows* | osx | abug | netware* | os9* \
-	    | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
-		;;
-	linux-dietlibc)
-		os=linux-dietlibc
-		;;
-	linux*)
-		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-		;;
-	lynx*178)
-		os=lynxos178
+	-sim | -xray | -os68k* | -v88r* \
+	      | -windows* | -osx | -abug | -netware* | -os9* \
+	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
 		;;
-	lynx*5)
-		os=lynxos5
-		;;
-	lynx*)
-		os=lynxos
-		;;
-	mac*)
+	-mac*)
 		os=`echo "$os" | sed -e 's|mac|macos|'`
 		;;
-	opened*)
-		os=openedition
+	-linux-dietlibc)
+		os=-linux-dietlibc
 		;;
-	os400*)
-		os=os400
+	-linux*)
+		os=`echo $os | sed -e 's|linux|linux-gnu|'`
 		;;
-	sunos5*)
+	-sunos5*)
 		os=`echo "$os" | sed -e 's|sunos5|solaris2|'`
 		;;
-	sunos6*)
+	-sunos6*)
 		os=`echo "$os" | sed -e 's|sunos6|solaris3|'`
 		;;
-	wince*)
-		os=wince
+	-opened*)
+		os=-openedition
 		;;
-	utek*)
-		os=bsd
+	-os400*)
+		os=-os400
 		;;
-	dynix*)
-		os=bsd
+	-wince*)
+		os=-wince
 		;;
-	acis*)
-		os=aos
+	-utek*)
+		os=-bsd
 		;;
-	atheos*)
-		os=atheos
+	-dynix*)
+		os=-bsd
 		;;
-	syllable*)
-		os=syllable
+	-acis*)
+		os=-aos
 		;;
-	386bsd)
-		os=bsd
+	-atheos*)
+		os=-atheos
+		;;
+	-syllable*)
+		os=-syllable
+		;;
+	-386bsd)
+		os=-bsd
 		;;
-	ctix* | uts*)
-		os=sysv
+	-ctix* | -uts*)
+		os=-sysv
 		;;
-	nova*)
-		os=rtmk-nova
+	-nova*)
+		os=-rtmk-nova
 		;;
-	ns2)
-		os=nextstep2
+	-ns2)
+		os=-nextstep2
 		;;
-	nsk*)
-		os=nsk
+	-nsk*)
+		os=-nsk
 		;;
 	# Preserve the version number of sinix5.
-	sinix5.*)
+	-sinix5.*)
 		os=`echo $os | sed -e 's|sinix|sysv|'`
 		;;
-	sinix*)
-		os=sysv4
+	-sinix*)
+		os=-sysv4
 		;;
-	tpf*)
-		os=tpf
+	-tpf*)
+		os=-tpf
 		;;
-	triton*)
-		os=sysv3
+	-triton*)
+		os=-sysv3
 		;;
-	oss*)
-		os=sysv3
+	-oss*)
+		os=-sysv3
 		;;
-	svr4*)
-		os=sysv4
+	-svr4*)
+		os=-sysv4
 		;;
-	svr3)
-		os=sysv3
+	-svr3)
+		os=-sysv3
 		;;
-	sysvr4)
-		os=sysv4
+	-sysvr4)
+		os=-sysv4
 		;;
-	# This must come after sysvr4.
-	sysv*)
+	# This must come after -sysvr4.
+	-sysv*)
 		;;
-	ose*)
-		os=ose
+	-ose*)
+		os=-ose
 		;;
-	*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
-		os=mint
+	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+		os=-mint
 		;;
-	zvmoe)
-		os=zvmoe
+	-zvmoe)
+		os=-zvmoe
 		;;
-	dicos*)
-		os=dicos
+	-dicos*)
+		os=-dicos
 		;;
-	pikeos*)
+	-pikeos*)
 		# Until real need of OS specific support for
 		# particular features comes up, bare metal
 		# configurations are quite functional.
 		case $basic_machine in
 		    arm*)
-			os=eabi
+			os=-eabi
 			;;
 		    *)
-			os=elf
+			os=-elf
 			;;
 		esac
 		;;
-	nacl*)
+	-nacl*)
 		;;
-	ios)
+	-ios)
 		;;
-	none)
-		;;
-	*-eabi)
+	-none)
 		;;
 	*)
+		# Get rid of the `-' at the beginning of $os.
+		os=`echo $os | sed 's/[^-]*-//'`
 		echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
 		exit 1
 		;;
@@ -1543,179 +1547,173 @@ else
 
 case $basic_machine in
 	score-*)
-		os=elf
+		os=-elf
 		;;
 	spu-*)
-		os=elf
+		os=-elf
 		;;
 	*-acorn)
-		os=riscix1.2
+		os=-riscix1.2
 		;;
 	arm*-rebel)
-		os=linux
+		os=-linux
 		;;
 	arm*-semi)
-		os=aout
+		os=-aout
 		;;
 	c4x-* | tic4x-*)
-		os=coff
+		os=-coff
 		;;
 	c8051-*)
-		os=elf
-		;;
-	clipper-intergraph)
-		os=clix
+		os=-elf
 		;;
 	hexagon-*)
-		os=elf
+		os=-elf
 		;;
 	tic54x-*)
-		os=coff
+		os=-coff
 		;;
 	tic55x-*)
-		os=coff
+		os=-coff
 		;;
 	tic6x-*)
-		os=coff
+		os=-coff
 		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
-		os=tops20
+		os=-tops20
 		;;
 	pdp11-*)
-		os=none
+		os=-none
 		;;
 	*-dec | vax-*)
-		os=ultrix4.2
+		os=-ultrix4.2
 		;;
 	m68*-apollo)
-		os=domain
+		os=-domain
 		;;
 	i386-sun)
-		os=sunos4.0.2
+		os=-sunos4.0.2
 		;;
 	m68000-sun)
-		os=sunos3
+		os=-sunos3
 		;;
 	m68*-cisco)
-		os=aout
+		os=-aout
 		;;
 	mep-*)
-		os=elf
+		os=-elf
 		;;
 	mips*-cisco)
-		os=elf
+		os=-elf
 		;;
 	mips*-*)
-		os=elf
+		os=-elf
 		;;
 	or32-*)
-		os=coff
+		os=-coff
 		;;
 	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=sysv3
+		os=-sysv3
 		;;
 	sparc-* | *-sun)
-		os=sunos4.1.1
+		os=-sunos4.1.1
 		;;
 	pru-*)
-		os=elf
+		os=-elf
 		;;
 	*-be)
-		os=beos
+		os=-beos
 		;;
 	*-ibm)
-		os=aix
+		os=-aix
 		;;
 	*-knuth)
-		os=mmixware
+		os=-mmixware
 		;;
 	*-wec)
-		os=proelf
+		os=-proelf
 		;;
 	*-winbond)
-		os=proelf
+		os=-proelf
 		;;
 	*-oki)
-		os=proelf
+		os=-proelf
 		;;
 	*-hp)
-		os=hpux
+		os=-hpux
 		;;
 	*-hitachi)
-		os=hiux
+		os=-hiux
 		;;
 	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=sysv
+		os=-sysv
 		;;
 	*-cbm)
-		os=amigaos
+		os=-amigaos
 		;;
 	*-dg)
-		os=dgux
+		os=-dgux
 		;;
 	*-dolphin)
-		os=sysv3
+		os=-sysv3
 		;;
 	m68k-ccur)
-		os=rtu
+		os=-rtu
 		;;
 	m88k-omron*)
-		os=luna
+		os=-luna
 		;;
 	*-next)
-		os=nextstep
+		os=-nextstep
 		;;
 	*-sequent)
-		os=ptx
+		os=-ptx
 		;;
 	*-crds)
-		os=unos
+		os=-unos
 		;;
 	*-ns)
-		os=genix
+		os=-genix
 		;;
 	i370-*)
-		os=mvs
+		os=-mvs
 		;;
 	*-gould)
-		os=sysv
+		os=-sysv
 		;;
 	*-highlevel)
-		os=bsd
+		os=-bsd
 		;;
 	*-encore)
-		os=bsd
+		os=-bsd
 		;;
 	*-sgi)
-		os=irix
+		os=-irix
 		;;
 	*-siemens)
-		os=sysv4
+		os=-sysv4
 		;;
 	*-masscomp)
-		os=rtu
+		os=-rtu
 		;;
 	f30[01]-fujitsu | f700-fujitsu)
-		os=uxpv
+		os=-uxpv
 		;;
 	*-rom68k)
-		os=coff
+		os=-coff
 		;;
 	*-*bug)
-		os=coff
+		os=-coff
 		;;
 	*-apple)
-		os=macos
+		os=-macos
 		;;
 	*-atari*)
-		os=mint
-		;;
-	*-wrs)
-		os=vxworks
+		os=-mint
 		;;
 	*)
-		os=none
+		os=-none
 		;;
 esac
 fi
@@ -1726,70 +1724,67 @@ vendor=unknown
 case $basic_machine in
 	*-unknown)
 		case $os in
-			riscix*)
+			-riscix*)
 				vendor=acorn
 				;;
-			sunos*)
+			-sunos*)
 				vendor=sun
 				;;
-			cnk*|-aix*)
+			-cnk*|-aix*)
 				vendor=ibm
 				;;
-			beos*)
+			-beos*)
 				vendor=be
 				;;
-			hpux*)
+			-hpux*)
 				vendor=hp
 				;;
-			mpeix*)
+			-mpeix*)
 				vendor=hp
 				;;
-			hiux*)
+			-hiux*)
 				vendor=hitachi
 				;;
-			unos*)
+			-unos*)
 				vendor=crds
 				;;
-			dgux*)
+			-dgux*)
 				vendor=dg
 				;;
-			luna*)
+			-luna*)
 				vendor=omron
 				;;
-			genix*)
+			-genix*)
 				vendor=ns
 				;;
-			clix*)
-				vendor=intergraph
-				;;
-			mvs* | opened*)
+			-mvs* | -opened*)
 				vendor=ibm
 				;;
-			os400*)
+			-os400*)
 				vendor=ibm
 				;;
-			ptx*)
+			-ptx*)
 				vendor=sequent
 				;;
-			tpf*)
+			-tpf*)
 				vendor=ibm
 				;;
-			vxsim* | vxworks* | windiss*)
+			-vxsim* | -vxworks* | -windiss*)
 				vendor=wrs
 				;;
-			aux*)
+			-aux*)
 				vendor=apple
 				;;
-			hms*)
+			-hms*)
 				vendor=hitachi
 				;;
-			mpw* | macos*)
+			-mpw* | -macos*)
 				vendor=apple
 				;;
-			*mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
 				vendor=atari
 				;;
-			vos*)
+			-vos*)
 				vendor=stratus
 				;;
 		esac
@@ -1797,11 +1792,11 @@ case $basic_machine in
 		;;
 esac
 
-echo "$basic_machine-$os"
+echo "$basic_machine$os"
 exit
 
 # Local variables:
-# eval: (add-hook 'before-save-hook 'time-stamp)
+# eval: (add-hook 'write-file-functions 'time-stamp)
 # time-stamp-start: "timestamp='"
 # time-stamp-format: "%:y-%02m-%02d"
 # time-stamp-end: "'"
--- postgresql-11-11.7.orig/configure
+++ postgresql-11-11.7/configure
@@ -4819,7 +4819,7 @@ if test "$with_llvm" = yes; then :
 
 
   if test -z "$LLVM_CONFIG"; then
-  for ac_prog in llvm-config llvm-config-7 llvm-config-6.0 llvm-config-5.0 llvm-config-4.0 llvm-config-3.9
+  for ac_prog in llvm-config llvm-config-8 llvm-config-7 llvm-config-6.0 llvm-config-5.0 llvm-config-4.0 llvm-config-3.9
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
@@ -4890,7 +4890,7 @@ fi
   # need clang to create some bitcode files
 
   if test -z "$CLANG"; then
-  for ac_prog in clang clang-7 clang-6.0 clang-5.0 clang-4.0 clang-3.9
+  for ac_prog in clang clang-8 clang-7 clang-6.0 clang-5.0 clang-4.0 clang-3.9
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
--- postgresql-11-11.7.orig/src/include/storage/s_lock.h
+++ postgresql-11-11.7/src/include/storage/s_lock.h
@@ -672,6 +672,47 @@ do \
 
 #endif /* __mips__ && !__sgi */
 
+#if defined(__loongarch__)   /* loongarch */
+#define HAS_TEST_AND_SET
+
+typedef unsigned int slock_t;
+
+#define TAS(lock) tas(lock)
+
+static __inline__ int
+tas(volatile slock_t *lock)
+{
+	register volatile slock_t *_l = lock;
+	register int _res;
+	register int _tmp;
+
+	__asm__ __volatile__(
+		"       ll.w    %0, %2      \n"
+		"       ori     %1, %0, 1   \n"
+		"       sc.w    %1, %2      \n"
+		"       xori    %1, %1, 1   \n"
+		"       or      %0, %0, %1  \n"
+		"       dbar    0           \n"
+:		"=&r" (_res), "=&r" (_tmp), "+R" (*_l)
+:		/* no inputs */
+:		"memory");
+	return _res;
+}
+
+/* MIPS S_UNLOCK is almost standard but requires a "sync" instruction */
+#define S_UNLOCK(lock)	\
+do \
+{ \
+	__asm__ __volatile__( \
+		"  dbar  0 \n" \
+:		/* no outputs */ \
+:		/* no inputs */	\
+:		"memory"); \
+	*((volatile slock_t *) (lock)) = 0; \
+} while (0)
+
+#endif /* __loongarch__ */
+
 
 #if defined(__m32r__) && defined(HAVE_SYS_TAS_H)	/* Renesas' M32R */
 #define HAS_TEST_AND_SET
