Sachverhalt:
A.
D.F._ und E.F._ sind Gesamteigentümer des Grundstücks Nr. 1299 im Grundbuch Witterswil/SO "...". Das Quartier im Rainacker wurde im Jahre 1961 mit eingeschossigen Gebäuden, die je zu zweit zusammengebaut sind, mit Flachdach erstellt. Auch auf dem Grundstück von D.F._ und E.F._steht ein eingeschossiges Wohnhaus mit Flachdach, das direkt an die Nachbarsliegenschaft Nr. 1298 "..." von A.C._ und B.C._ grenzt und mit dem daraufstehenden Wohnhaus zusammengebaut ist. Im Lauf der Zeit wurden die meisten Wohngebäude in der engeren Umgebung aufgestockt. Von den ursprünglich zehn ähnlichen Häusern sind heute nur zwei noch nicht wesentlich umgebaut worden.
Im Jahr 2007 bewilligte die kommunale Baubehörde eine Aufstockung des nachbarschaftlichen Wohngebäudes von A.C._ und B.C._ mit einem Satteldach, und am 11. Dezember 2007 schlossen die Nachbarn dazu eine Vereinbarung über die Einräumung eines gegenseitigen projektbezogenen Grenzbaurechts. Am 30. Juni 2017 entschied das Richteramt Dorneck-Thierstein, gemäss der Vereinbarung von 2007 bestehe ein obligatorisch vereinbartes, gegenseitiges, zeitlich unlimitiertes Grenzbaurecht. Im Mai 2018 ersuchten D.F._ und E.F._ die kommunale Baubehörde Witterswil um Bewilligung zur Dachaufstockung ihres Wohnhauses. Am 19. Dezember 2018 erteilte die Baukommission die Bewilligung unter gleichzeitiger Abweisung einer Einsprache der Nachbarn A.C._ und B.C._. Mit Entscheid vom 24. Juni 2019 wies das Bau- und Justizdepartement des Kantons Solothurn (BJD) eine dagegen von A.C._ und B.C._ eingereichte Beschwerde ab.
B.
Am 23. März 2020 wies das Verwaltungsgericht des Kantons Solothurn eine dagegen erhobene Beschwerde von A.C._ und B.C._ ebenfalls ab. Zur Begründung hielt es im Wesentlichen fest, zivilrechtlich sei rechtskräftig entschieden, dass ein zeitlich unlimitiertes Grenzbaurecht bestehe. Die Argumentation, dass ein solches fehle, sei rechtsmissbräuchlich. Da im Übrigen die Bauvorschriften erfüllt seien, sei das Bauprojekt zu bewilligen.
C.
Mit Beschwerde in öffentlich-rechtlichen Angelegenheiten vom 19. Mai 2020 beantragen A.C._ und B.C._, das Urteil des Verwaltungsgerichts und die vorangegangenen Entscheide der kommunalen Baukommission und des kantonalen Departements aufzuheben. Überdies ersuchten sie um Gewährung der aufschiebenden Wirkung. Im Wesentlichen wird dazu geltend gemacht, das angefochtene Urteil beruhe auf einer unrichtigen Sachverhaltsfeststellung, verletze den Anspruch auf rechtliches Gehör der Beschwerdeführer und sei insofern rechtswidrig, als das Verwaltungsgericht von der zivilrechtlichen Geltung des Grenzbaurechts ausgegangen sei.
D.F._ und E.F._ und das kantonale Bau- und Justizdepartement reichten keine Stellungnahme ein. Die Baukommission der Einwohnergemeinde Witterswil schliesst auf Abweisung der Beschwerde. Das Verwaltungsgericht stellt Antrag, die Beschwerde abzuweisen, soweit darauf eingetreten werden könne.
D.
Mit Verfügung vom 16. Juni 2020 erteilte der Präsident der I. öffentlich-rechtlichen Abteilung des Bundesgerichts der Beschwerde die aufschiebende Wirkung.
Erwägungen:
1.
1.1. Beim angefochtenen Entscheid handelt es sich um einen kantonal letztinstanzlichen Endentscheid (vgl. Art. 86 Abs. 1 lit. d und Art. 90 BGG) im Bereich des Raumplanungs- und Baurechts, das zum öffentlichen Recht zählt und vom Anwendungsbereich der Beschwerde in öffentlich-rechtlichen Angelegenheiten nicht ausgenommen ist. Die Beschwerde erweist sich daher als grundsätzlich zulässig (vgl. Art. 83 ff. BGG e contrario; BGE 133 II 249 E. 1.2 S. 251).
1.2. Anfechtbar ist allerdings nur das Urteil des Verwaltungsgerichts (sog. Devolutiveffekt); dem Antrag der Beschwerdeführer auf Aufhebung auch der unterinstanzlichen Entscheide kann daher von vornherein nicht stattgegeben werden. Immerhin gelten Entscheide unterer Instanzen als inhaltlich mitangefochten (vgl. BGE 134 II 142 E. 1.4 S. 144; 129 II 438 E. 1 S. 441).
1.3. Die Beschwerdeführer waren an den vorinstanzlichen Verfahren beteiligt und sind als Eigentümer des Nachbargrundstücks von der Streitsache direkt betroffen. Sie sind damit gemäss Art. 89 Abs. 1 BGG zur Beschwerde legitimiert (vgl. 137 II 30 E. 2.2.2 S. 33).
1.4. Nach Art. 105 Abs. 1 BGG legt das Bundesgericht seinem Urteil den von der Vorinstanz festgestellten Sachverhalt zugrunde, es sei denn, dieser sei offensichtlich unrichtig, d.h. willkürlich, erhoben worden oder beruhe auf einem erheblichen Verstoss gegen Verfahrensrecht (vgl. Art. 97 Abs. 1 und Art. 105 Abs. 2 BGG).
1.5. Mit der Beschwerde an das Bundesgericht kann, von hier nicht interessierenden weiteren Möglichkeiten abgesehen, nur die Verletzung von Bundesrecht gerügt werden (Art. 95 lit. a BGG). Dies prüft das Bundesgericht frei.
1.6. Das Bundesgericht wendet das Recht von Amtes wegen an (Art. 106 Abs. 1 BGG), prüft die bei ihm angefochtenen Entscheide aber grundsätzlich nur auf Rechtsverletzungen hin, die von den Beschwerdeführern geltend gemacht und begründet werden (vgl. Art. 42 Abs. 2 BGG).
2.
Die Beschwerdeführer rügen, das Verwaltungsgericht habe den Sachverhalt unrichtig festgestellt, indem darin wiedergegeben werde, sie hätten "einem ungemessenen Grenzbaurecht" zu Gunsten ihrer Nachbarn zugestimmt. Dies trifft offenkundig nicht zu, steht im Sachverhalt doch gerade, dass sie gerügt hätten, "keinem ungemessenen Grenzbaurecht" zugestimmt zu haben. Dass kein Sachverhaltsfehler vorliegt, ergibt sich auch aus der nachfolgenden rechtlichen Begründung des angefochtenen Urteils.
3.
3.1. Die Beschwerdeführer machen eine Verletzung ihres Anspruchs auf rechtliches Gehör nach Art. 29 Abs. 2 BV geltend. Das Verwaltungsgericht habe sich nicht mit ihrer Argumentation auseinandergesetzt, das Grenzbaurecht sei verjährt. Zudem habe es sich nicht mit ihrem Einwand befasst, sie hätten das Urteil des Zivilgerichts vom 30. Juni 2017 als im Verfahren Obsiegende mangels Beschwer gar nicht anfechten können.
3.2. Das rechtliche Gehör dient der Sachaufklärung und stellt ein persönlichkeitsbezogenes Mitwirkungsrecht beim Erlass eines Entscheides dar, welcher in die Rechtsstellung des Einzelnen eingreift. Dazu gehört insbesondere das Recht des Betroffenen, sich vor Fällung eines solchen Entscheids zur Sache zu äussern. Wie weit dieses Recht geht, lässt sich nicht generell, sondern nur unter Würdigung der konkreten Umstände beurteilen. Massgebend ist, ob es dem Betroffenen ermöglicht worden ist, seinen Standpunkt wirksam zur Geltung zu bringen (vgl. BGE 144 I 11 E. 5.3 S. 17 f.; 136 I 265 E. 3.2 S. 272; 135 II 286 E. 5.1 S. 293). Dem Gehörsanspruch entspricht die Pflicht der Behörden, die Vorbringen tatsächlich zu hören, ernsthaft zu prüfen und in ihrer Entscheidfindung angemessen zu berücksichtigen. Die Begründung muss so abgefasst sein, dass die betroffene Person den Entscheid sachgerecht anfechten kann. Sie muss die wesentlichen Überlegungen enthalten, von denen sich die Behörde hat leiten lassen und auf die sie ihren Entscheid stützt. Nicht erforderlich ist, dass sich die Vorinstanz in ihrer Begründung mit allen Parteistandpunkten einlässlich auseinandersetzt und jedes einzelne Vorbringen ausdrücklich widerlegt (BGE 142 II 49 E. 9.2 S. 65; 137 II 266 E. 3.2 S. 270 mit Hinweisen).
3.3. Der angefochtene Entscheid mag mit Blick auf die Begründung der prozess- und privatrechtlichen Wirkungen des Urteils des Zivilgerichts vom 30. Juni 2017 etwas knapp ausgefallen sein. Es geht jedoch klar erkennbar daraus hervor, dass das Verwaltungsgericht den Standpunkt der Beschwerdeführer insofern insgesamt als rechtsmissbräuchlich beurteilte. Diesen war es denn auch ohne weiteres möglich, das vorinstanzliche Urteil sachgerecht anzufechten und ihren Standpunkt vor Bundesgericht uneingeschränkt einzubringen. Der angefochtene Entscheid verstösst mithin nicht gegen den Anspruch auf rechtliches Gehör.
4.
4.1. Die Beschwerdeführer rügen eine Verletzung von Bundeszivilrecht, und zwar von Art. 680 Abs. 2 ZGB sowie von Art. 127 OR. Das Zivilgericht habe lediglich ein obligatorisches und nicht ein dingliches Grenzbaurecht anerkannt, und dieses sei nach zehn Jahren verjährt, weshalb es nicht als Grundlage für die strittige Baubewilligung tauge.
4.2. Gemäss Art. 680 Abs. 2 ZGB bedarf die Aufhebung oder Abänderung einer gesetzlichen Eigentumsbeschränkung durch Rechtsgeschäft zur Gültigkeit der öffentlichen Beurkundung und der Eintragung in das Grundbuch. Nach Art. 127 OR verjähren alle Forderungen, für die das Bundeszivilrecht nicht etwas anderes bestimmt, mit Ablauf von zehn Jahren. Gemäss dem angefochtenen Urteil ist mit dem Entscheid des zuständigen Zivilrichters vom 30. Juni 2017, wonach zwischen den Beschwerdeführern und -gegnern ein "gegenseitiges zeitlich unlimitiertes projektbezogenes Grenzbaurecht" bestehe, die privatrechtliche Lage ausreichend geklärt. Die Beschwerdeführer hielten diesen Entscheid zwar für falsch; er stamme aber von der sachlich zuständigen Instanz und sei rechtskräftig. Die Argumentation der Beschwerdeführer, es fehle am erforderlichen Grenzbaurecht, verstosse krass gegen Treu und Glauben und sei daher rechtsmissbräuchlich (vgl. E. 3.1 - 3.4 des angefochtenen Urteils).
4.3. Die Beschwerdeführer behaupten und belegen nicht, dass die entsprechenden tatsächlichen Feststellungen des Verwaltungsgerichts offensichtlich unrichtig wären. Sie legen zudem zumindest nicht ausreichend dar, der angefochtene Entscheid verstosse in bundesrechtswidriger Weise gegen öffentliches Baurecht, sondern berufen sich im Wesentlichen einzig auf Bundeszivilrecht. Es ist daher mit dem Verwaltungsgericht davon auszugehen, dass sich aus dem Grundbuch ergibt, es seien zwischen den beiden Grundstücken der Beschwerdeführer und -gegner gegenseitig Grenz- und Anbaurechte sowie Dachüberbaurechte eingetragen, und dass die Baubehörde die zivilrechtliche Rechtmässigkeit der Dienstbarkeiten nur summarisch zu prüfen habe. Grundlage ist dabei die Existenz eines rechtskräftigen zivilgerichtlichen Urteils, welches das strittige Grenzbaurecht als solches obligatorischer Natur anerkennt. Die im Grundbuch eingetragenen Dienstbarkeiten decken demgemäss nur die ursprünglich erstellten Bauten ab.
4.4. Gemäss Lehre und Rechtsprechung gilt das Rechtsmissbrauchsverbot als allgemeiner Rechtsgrundsatz in der ganzen Rechtsordnung mit Einschluss des öffentlichen Rechts sowie des Prozess- und Vollstreckungsrechts. Es bildet Bestandteil des schweizerischen Ordre public und ist von jeder Instanz von Amtes wegen anzuwenden (vgl. etwa BGE 128 III 201 E. 1c S. 206 f.; 122 II 193 E. 1c/ee S. 198). Dies wird heute nicht mehr nur aus Art. 2 Abs. 2 ZGB abgeleitet, wonach der offenbare Missbrauch eines Rechts keinen Rechtsschutz findet. Eine zusätzliche Grundlage, und zwar bereits auf Verfassungsstufe, enthalten Art. 5 Abs. 3 sowie Art. 9 BV. Einen typischen Anwendungsfall des Rechtsmissbrauchs bildet dabei das widersprüchliche bzw. treuwidrige Verhalten (vgl. Art. 2 Abs. 1 ZGB).
4.5. Die Beschwerdeführer verhalten sich widersprüchlich. Bis zu einem gewissen Grad trifft das schon insoweit zu, als sie einerseits geltend machen, sie hätten das zivilrichterliche Urteil von 2017 mangels Beschwer gar nicht anfechten können, obwohl sie damit nicht einverstanden gewesen seien, sich dann aber doch auf dieses Urteil berufen, indem es nur ein obligatorisches und nicht ein dingliches Grenzbaurecht anerkenne. Wie es sich damit verhält, kann jedoch offenbleiben. Zu Recht durfte das Verwaltungsgericht jedenfalls davon ausgehen, die Argumentation der Beschwerdeführer sei gegenüber den Beschwerdegegnern krass widersprüchlich und treuwidrig. Die Beschwerdeführer haben vor einigen Jahren selbst eine gleichartige Dachaufstockung vorgenommen, wie sie nunmehr von den Beschwerdegegnern angestrebt wird. Dafür räumten sich die Nachbarn im Verlauf der Realisierung der Aufstockung entsprechende gegenseitige Grenzbaurechte ein. Dabei ging es erstens darum, den damaligen Bauvorgang zu legalisieren, und zweitens, den damals belasteten Beschwerdegegnern das Gegenrecht zu gewähren. Das nunmehr hier zu beurteilende Bauprojekt der Beschwerdegegner hält sich inhaltlich an die vereinbarten Grenzbaurechte und wahrt die öffentlich-rechtlichen Bauvorschriften, was beides vor Bundesgericht nicht mehr umstritten ist. Läge ein Verstoss gegen Art. 680 ZGB vor, wäre wohl auch die Dachaufbaute der Beschwerdeführer selbst rechtswidrig, was wohl kaum ihr Standpunkt sein kann. Selbst wenn das Grenzbaurecht nur obligatorischer und nicht dinglicher Natur ist, heisst das zwar, dass es Dritten grundsätzlich nicht entgegengehalten werden kann, bedeutet aber nicht zwingend, dass es zwischen den Parteien nach den allgemeinen Regeln verjährt, nachdem der Zivilrichter von einem zeitlich unlimitierten Grenzbaurecht ausgegangen ist. Vielmehr haben die Beschwerdeführer mit der Einräumung eines zeitlich unlimitierten Grenzbaurechts nicht nur auf die Erhebung baurechtlicher Einsprachen, sondern wohl zumindest implizite auch auf die Verjährungseinrede verzichtet. So oder so kommt es darauf aber erneut nicht an, wie es auch nicht wesentlich ist, ob die Beschwerdeführer das zivilgerichtliche Urteil von 2017 überhaupt hätten anfechten können oder nicht. Dass sie sich nunmehr darauf berufen, das gegenseitige Grenzbaurecht sei gar nicht bzw. nicht mehr rechtsgültig, nachdem sie davon selbst durch die nachträgliche bzw. während des Baus erfolgten Einräumung desselben für ihre eigene Dachaufstockung profitiert haben, ist rechtsmissbräuchlich. Dass das Bauprojekt der Beschwerdegegner unter Umständen die Aussicht der Beschwerdeführer beeinträchtigen könnte, ändert daran nichts, war dies doch zwangsläufig schon bei der Erstellung der Dachaufbaute der Beschwerdeführer bzw. der damit verbundenen vertraglichen Festlegung des gegenseitigen Grenzbaurechts absehbar.
4.6. Der angefochtene Entscheid verletzt demnach Bundesrecht nicht.
5.
Die Beschwerde erweist sich als unbegründet und ist abzuweisen, soweit darauf eingetreten werden kann.
Bei diesem Verfahrensausgang werden die unterliegenden Beschwerdeführer unter Solidarhaft kostenpflichtig (Art. 66 Abs. 1 und 5, Art. 65 BGG). Eine Parteientschädigung ist nicht zuzusprechen (vgl. Art. 68 BGG).
Demnach erkennt das Bundesgericht:
1.
Die Beschwerde wird abgewiesen, soweit darauf einzutreten ist.
2.
Die Gerichtskosten von Fr. 4'000.-- werden den Beschwerdeführern unter Solidarhaft auferlegt.
3.
Dieses Urteil wird den Parteien, der Baukommission der Einwohnergemeinde Witterswil, dem Bau- und Justizdepartement des Kantons Solothurn und dem Verwaltungsgericht des Kantons Solothurn schriftlich mitgeteilt.
Lausanne, 22. Januar 2021
Im Namen der I. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Kneubühler
Der Gerichtsschreiber: Uebersax