diff --git a/SOURCES/gdb-rhbz1639077-symlink-default-symtab.patch b/SOURCES/gdb-rhbz1639077-symlink-default-symtab.patch
new file mode 100644
index 0000000..3e01722
--- /dev/null
+++ b/SOURCES/gdb-rhbz1639077-symlink-default-symtab.patch
@@ -0,0 +1,177 @@
+commit bb995d00b3eef2f48d0be895c3509a7ddd8280a1
+Author: Keith Seitz <keiths@redhat.com>
+Date:   Fri Feb 22 09:39:35 2019 -0800
+
+    Fix symtab/23853: symlinked default symtab
+    
+    This patch attempts to fix a bug dealing with setting breakpoints
+    in default symtabs that are symlinks.  For example:
+    
+    (gdb) list
+    11         GNU General Public License for more details.
+    12
+    13         You should have received a copy of the GNU General Public License
+    14         along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
+    15
+    16      static int
+    17      foo (void)
+    18      {
+    19        return 0; /* break here  */
+    20      }
+    (gdb)
+    21
+    22      int
+    23      main (void)
+    24      {
+    25        return foo ();
+    26      }
+    (gdb) b 19
+    No line 19 in the current file.
+    Make breakpoint pending on future shared library load? (y or [n])
+    
+    The problem here is that when create_sals_line_offset sets the default
+    symtab, it immediately calls symtab_to_fullname, passing that fullname
+    to collect_symtabs_from_filename to find all matching symtabs.  This
+    fails because we end up looking for a symtab with the name of the
+    actual file on disk (which is different in this case because of the
+    symlink) instead of the one stored in the debug info.
+    
+    Since we already have the lookup name of the default symtab, use it
+    instead of the fullname. [This fullname thing was originally added
+    in 2007 in a series dealing with *displaying* absolute file names.
+    Clearly, this instance has nothing to do with the display of file names.]
+    
+    gdb/ChangeLog
+    
+            PR symtab/23853
+            * linespec.c (create_sals_line_offset): Search for the default
+            symtab's filename instead of its fullname.
+    
+    gdb/testsuite/ChangeLog
+    
+            PR symtab/23853
+            * gdb.base/symlink-sourcefile.c: New file.
+            * gdb.base/symlink-sourcefile.exp: New file.
+
+Index: gdb-7.6.1/gdb/linespec.c
+===================================================================
+--- gdb-7.6.1.orig/gdb/linespec.c
++++ gdb-7.6.1/gdb/linespec.c
+@@ -1844,17 +1844,15 @@ create_sals_line_offset (struct linespec
+   if (VEC_length (symtab_p, ls->file_symtabs) == 1
+       && VEC_index (symtab_p, ls->file_symtabs, 0) == NULL)
+     {
+-      const char *fullname;
+-
+       set_current_program_space (self->program_space);
+ 
+       /* Make sure we have at least a default source line.  */
+       set_default_source_symtab_and_line ();
+       initialize_defaults (&self->default_symtab, &self->default_line);
+-      fullname = symtab_to_fullname (self->default_symtab);
+       VEC_pop (symtab_p, ls->file_symtabs);
+       VEC_free (symtab_p, ls->file_symtabs);
+-      ls->file_symtabs = collect_symtabs_from_filename (fullname);
++      ls->file_symtabs
++	= collect_symtabs_from_filename (self->default_symtab->filename);
+       use_default = 1;
+     }
+ 
+Index: gdb-7.6.1/gdb/testsuite/gdb.base/symlink-sourcefile.c
+===================================================================
+--- /dev/null
++++ gdb-7.6.1/gdb/testsuite/gdb.base/symlink-sourcefile.c
+@@ -0,0 +1,26 @@
++/* Copyright 2019 Free Software Foundation, Inc.
++
++   This program is free software; you can redistribute it and/or modify
++   it under the terms of the GNU General Public License as published by
++   the Free Software Foundation; either version 3 of the License, or
++   (at your option) any later version.
++
++   This program is distributed in the hope that it will be useful,
++   but WITHOUT ANY WARRANTY; without even the implied warranty of
++   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++   GNU General Public License for more details.
++
++   You should have received a copy of the GNU General Public License
++   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
++
++static int
++foo (void)
++{
++  return 0; /* break here  */
++}
++
++int
++main (void)
++{
++  return foo ();
++}
+Index: gdb-7.6.1/gdb/testsuite/gdb.base/symlink-sourcefile.exp
+===================================================================
+--- /dev/null
++++ gdb-7.6.1/gdb/testsuite/gdb.base/symlink-sourcefile.exp
+@@ -0,0 +1,46 @@
++# Copyright 2019 Free Software Foundation, Inc.
++
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++#
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++#
++# You should have received a copy of the GNU General Public License
++# along with this program.  If not, see <http://www.gnu.org/licenses/>.
++
++# Test that GDB can find the default symtab when it is a symbolic link.
++standard_testfile
++
++set test "file symbolic link name"
++set srcdirabs [file join [pwd] $srcdir]
++set linksrc "link-${srcfile}"
++set srcfilelink [standard_output_file $linksrc]
++
++
++# Remove any existing symlink and build executable using a
++# symbolic link to the actual source file.
++remote_file host delete $srcfilelink
++set status [remote_exec host \
++		"ln -sf $srcdirabs/$subdir/$srcfile $srcfilelink"]
++if {[lindex $status 0] != 0} {
++    unsupported "$test (host does not support symbolic links)"
++    return 0
++}
++
++if {[prepare_for_testing $testfile $testfile $srcfilelink]} {
++    return -1
++}
++
++if {![runto_main]} {
++    untested "could not run to main"
++    return -1
++}
++
++# Using a line number ensures that the default symtab is used.
++gdb_breakpoint [gdb_get_line_number "break here" $srcfile] message
++gdb_continue_to_breakpoint "run to breakpoint marker"
+Index: gdb-7.6.1/gdb/testsuite/lib/gdb.exp
+===================================================================
+--- gdb-7.6.1.orig/gdb/testsuite/lib/gdb.exp
++++ gdb-7.6.1/gdb/testsuite/lib/gdb.exp
+@@ -4062,7 +4062,10 @@ proc build_executable_from_specs {testna
+ 	set objects {}
+ 	set i 0
+ 	foreach {s local_options} $args {
+-	    if  { [gdb_compile "${srcdir}/${subdir}/${s}" "${binfile}${i}.o" object $local_options] != "" } {
++	    if {! [regexp "^/" "$s"] } then {
++		set s "$srcdir/$subdir/$s"
++	    }
++	    if  { [gdb_compile "${s}" "${binfile}${i}.o" object $local_options] != "" } {
+ 		untested $testname
+ 		return -1
+ 	    }
diff --git a/SPECS/gdb.spec b/SPECS/gdb.spec
index 9771f23..9819976 100644
--- a/SPECS/gdb.spec
+++ b/SPECS/gdb.spec
@@ -42,7 +42,7 @@ Version: 7.6.1
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 114%{?dist}
+Release: 115%{?dist}
 
 License: GPLv3+ and GPLv3+ with exceptions and GPLv2+ and GPLv2+ with exceptions and GPL+ and LGPLv2+ and BSD and Public Domain
 Group: Development/Debuggers
@@ -938,6 +938,9 @@ Patch1277: gdb-rhbz1553104-s390x-arch12-test.patch
 # [aarch64] Fix missed unaligned hardware watchpoints (RH BZ 1347993).
 Patch1278: gdb-rhbz1347993-aarch64-hw-watchpoint.patch
 
+# Backport symtab/23853 symlinked default symtab (RH BZ 1639077)
+Patch1280: gdb-rhbz1639077-symlink-default-symtab.patch
+
 %if 0%{!?rhel:1} || 0%{?rhel} > 6
 # RL_STATE_FEDORA_GDB would not be found for:
 # Patch642: gdb-readline62-ask-more-rh.patch
@@ -1492,6 +1495,7 @@ find -name "*.info*"|xargs rm -f
 %patch1275 -p1
 %patch1276 -p1
 %patch1277 -p1
+%patch1280 -p1
 
 %if 0%{?scl:1}
 %patch836 -p1 -R
@@ -2019,6 +2023,9 @@ fi
 %endif # 0%{!?el5:1} || "%{_target_cpu}" == "noarch"
 
 %changelog
+* Fri Mar  1 2019 Keith Seitz <keiths@redhat.com> - 7.6.1-115.el7
+- Fix symlinked default symtab bug (RH BZ 1639077).
+
 * Fri Jun 29 2018 Jan Kratochvil <jan.kratochvil@redhat.com> - 7.6.1-114.el7
 - Fix /usr/share/gdb/auto-load/ (safely) dangling symlinks (RH BZ 1596023).